Converter texto bruto em conteúdo polido e otimizado para SEO é um desafio diário para muitos desenvolvedores .NET que criam aplicações web ricas em conteúdo. GroupDocs.Rewriter Cloud SDK for .NET fornece uma API poderosa que reescreve frases preservando o significado. Este guia passo a passo para integrar com ASP.NET Core MVC mostra como configurar a biblioteca, definir credenciais, implementar a lógica de reescrita em um controlador e renderizar os resultados em uma visualização Razor.
Requisitos do Caso de Uso
Empresas que geram artigos criados por usuários, descrições de produtos ou textos de marketing frequentemente precisam melhorar a legibilidade sem edição manual. Os requisitos para esse cenário incluem:
- Reescrita de texto em tempo real diretamente de um formulário web.
- Manipulação segura das credenciais da API no lado do servidor.
- Integração perfeita com o pipeline existente do ASP.NET Core MVC.
Usar código genérico de manipulação de strings rapidamente se torna propenso a erros e não escala, por isso uma biblioteca dedicada à reescrita de documentos é essencial.
Escolhendo GroupDocs.Rewriter Cloud SDK for .NET para o Trabalho
GroupDocs.Rewriter Cloud SDK for .NET oferece uma API baseada em REST que suporta vários idiomas, modos de reescrita personalizáveis e processamento de alto desempenho. Seus principais recursos que correspondem ao caso de uso são:
- RewriteModeEnum.Rewrite - produz uma reescrita em linguagem natural do texto de entrada.
- Cliente compatível com DI - pode ser registrado como singleton no contêiner de serviços ASP.NET Core.
- Tipagem forte e suporte assíncrono - encaixa-se naturalmente nos padrões assíncronos modernos do .NET.
O guia passo a passo para integrar com ASP.NET Core MVC demonstra como esses recursos se mapeiam aos requisitos. Para informações detalhadas da API, veja a documentação oficial e a referência da API.
Implementando Guia Passo a Passo para Integrar com ASP.NET Core MVC
Este guia passo a passo para integrar com ASP.NET Core MVC o guiará por cada etapa de configuração necessária.
Instalar o Pacote SDK
Adicione o pacote NuGet ao seu projeto.
dotnet add package GroupDocs.Rewriter-Cloud
Você também pode baixar os binários na página de download.
Adicionar Configuração para Credenciais do Rewriter
Coloque seu AppSid e AppKey na configuração. O trecho abaixo os adiciona em memória para simplificar.
builder.Configuration.AddInMemoryCollection(new[]
{
new KeyValuePair<string,string>("GroupDocsRewriter:AppSid", "YOUR_APP_SID"),
new KeyValuePair<string,string>("GroupDocsRewriter:AppKey", "YOUR_APP_KEY")
});
Registrar o cliente da API Rewriter no DI
O cliente SDK é registrado como singleton para que possa ser injetado nos controladores.
builder.Services.Configure<RewriterSettings>(builder.Configuration.GetSection("GroupDocsRewriter"));
builder.Services.AddSingleton<IRewriterApi>(sp =>
{
var settings = sp.GetRequiredService<IOptions<RewriterSettings>>().Value;
var config = new Configuration
{
AppSid = settings.AppSid,
AppKey = settings.AppKey
};
return new RewriterApi(config);
});
Criar o Controller MVC e o View Model
O controlador recebe o texto original, chama a Rewriter API e retorna o resultado reescrito.
public class RewriterController : Controller
{
private readonly IRewriterApi _rewriterApi;
public RewriterController(IRewriterApi rewriterApi)
{
_rewriterApi = rewriterApi;
}
[HttpGet]
public IActionResult Index()
{
return View(new RewriterViewModel());
}
[HttpPost]
public async Task<IActionResult> Index(RewriterViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
var rewriteRequest = new RewriteRequest
{
Text = model.InputText,
Language = "en",
TargetLanguage = "en",
RewriteMode = RewriteModeEnum.Rewrite
};
RewriteResponse response = await _rewriterApi.RewriteAsync(rewriteRequest);
model.OutputText = response?.Result?.Text ?? string.Empty;
return View(model);
}
}
O modelo de visualização associado contém as strings de entrada e saída.
public class RewriterViewModel
{
[Required]
[Display(Name = "Original Text")]
public string InputText { get; set; } = string.Empty;
[Display(Name = "Rewritten Text")]
public string OutputText { get; set; } = string.Empty;
}
Construa a View Razor para Entrada e Saída de Texto
A página Razor apresenta um formulário simples e exibe o texto reescrito quando disponível.
@model RewriterViewModel
@{
ViewData["Title"] = "Text Rewriter";
}
<h2>@ViewData["Title"]</h2>
<form asp-action="Index" method="post" class="form-horizontal">
<div class="form-group">
<label asp-for="InputText" class="control-label"></label>
<textarea asp-for="InputText" class="form-control" rows="6"></textarea>
<span asp-validation-for="InputText" class="text-danger"></span>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Rewrite</button>
</div>
</form>
@if (!string.IsNullOrWhiteSpace(Model.OutputText))
{
<hr />
<h4>Rewritten Text</h4>
<textarea class="form-control" rows="6" readonly>@Model.OutputText</textarea>
}
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
Exemplo completo e funcional de reescrita de documentos em ASP.NET Core MVC
O exemplo abaixo contém os arquivos de origem completos necessários para executar a solução.
// ---------------------------------------------------
// Program.cs
// ---------------------------------------------------
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
using GroupDocs.Rewriter.Cloud.Sdk.Api;
using GroupDocs.Rewriter.Cloud.Sdk.Client;
using GroupDocs.Rewriter.Cloud.Sdk.Model.Requests;
using GroupDocs.Rewriter.Cloud.Sdk.Model;
using System.Threading.Tasks;
var builder = WebApplication.CreateBuilder(args);
// Add configuration for GroupDocs Rewriter credentials
builder.Configuration.AddInMemoryCollection(new[]
{
new KeyValuePair<string,string>("GroupDocsRewriter:AppSid", "YOUR_APP_SID"),
new KeyValuePair<string,string>("GroupDocsRewriter:AppKey", "YOUR_APP_KEY")
});
builder.Services.Configure<RewriterSettings>(builder.Configuration.GetSection("GroupDocsRewriter"));
// Register GroupDocs Rewriter API client in DI
builder.Services.AddSingleton<IRewriterApi>(sp =>
{
var settings = sp.GetRequiredService<IOptions<RewriterSettings>>().Value;
var config = new Configuration
{
AppSid = settings.AppSid,
AppKey = settings.AppKey
};
return new RewriterApi(config);
});
builder.Services.AddControllersWithViews();
var app = builder.Build();
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Rewriter}/{action=Index}/{id?}");
app.Run();
// ---------------------------------------------------
// RewriterSettings.cs
// ---------------------------------------------------
public class RewriterSettings
{
public string AppSid { get; set; } = string.Empty;
public string AppKey { get; set; } = string.Empty;
}
// ---------------------------------------------------
// Models/RewriterViewModel.cs
// ---------------------------------------------------
using System.ComponentModel.DataAnnotations;
public class RewriterViewModel
{
[Required]
[Display(Name = "Original Text")]
public string InputText { get; set; } = string.Empty;
[Display(Name = "Rewritten Text")]
public string OutputText { get; set; } = string.Empty;
}
// ---------------------------------------------------
// Controllers/RewriterController.cs
// ---------------------------------------------------
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
public class RewriterController : Controller
{
private readonly IRewriterApi _rewriterApi;
public RewriterController(IRewriterApi rewriterApi)
{
_rewriterApi = rewriterApi;
}
[HttpGet]
public IActionResult Index()
{
return View(new RewriterViewModel());
}
[HttpPost]
public async Task<IActionResult> Index(RewriterViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
// Build request for the Rewriter API
var rewriteRequest = new RewriteRequest
{
Text = model.InputText,
Language = "en", // source language
TargetLanguage = "en", // target language (same for rewriting)
RewriteMode = RewriteModeEnum.Rewrite // choose rewrite mode
};
// Call the API
RewriteResponse response = await _rewriterApi.RewriteAsync(rewriteRequest);
// Populate the view model with the rewritten text
model.OutputText = response?.Result?.Text ?? string.Empty;
return View(model);
}
}
// ---------------------------------------------------
// Views/Rewriter/Index.cshtml
// ---------------------------------------------------
@model RewriterViewModel
@{
ViewData["Title"] = "Text Rewriter";
}
<h2>@ViewData["Title"]</h2>
<form asp-action="Index" method="post" class="form-horizontal">
<div class="form-group">
<label asp-for="InputText" class="control-label"></label>
<textarea asp-for="InputText" class="form-control" rows="6"></textarea>
<span asp-validation-for="InputText" class="text-danger"></span>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Rewrite</button>
</div>
</form>
@if (!string.IsNullOrWhiteSpace(Model.OutputText))
{
<hr />
<h4>Rewritten Text</h4>
<textarea class="form-control" rows="6" readonly>@Model.OutputText</textarea>
}
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
Nota: Este exemplo de código demonstra a funcionalidade principal. Antes de usá‑lo em seu projeto, certifique‑se de atualizar quaisquer caminhos de arquivo e valores de configuração para corresponder ao seu ambiente real, verifique se todas as dependências necessárias estão devidamente instaladas e teste minuciosamente em seu ambiente de desenvolvimento. Se encontrar algum problema, consulte a documentação oficial ou entre em contato com a equipe de suporte para obter assistência.
Executando Reescrita de Documentos via API REST usando cURL
Abaixo está um fluxo rápido de cURL que executa a mesma operação de reescrita via os endpoints REST do GroupDocs Rewriter.
Autenticar e Obter Token de Acesso
curl -X POST "https://api.groupdocs.cloud/v1/auth/token" \
-H "Content-Type: application/json" \
-d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
A resposta retorna um access_token que você usará nas chamadas subsequentes.
Carregar o Texto Fonte (opcional para arquivos grandes)
curl -X POST "https://api.groupdocs.cloud/v1/storage/file/upload" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@input.txt"
Executar a Operação de Reescrita
curl -X POST "https://api.groupdocs.cloud/v1/rewriter/rewrite" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"text": "Your original text goes here.",
"language": "en",
"targetLanguage": "en",
"rewriteMode": "Rewrite"
}'
A resposta JSON contém o texto reescrito no campo result.text.
Baixe o Resultado (se você o armazenou como um arquivo)
curl -X GET "https://api.groupdocs.cloud/v1/storage/file/download?path=output.txt" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o rewritten.txt
Para mais detalhes sobre os parâmetros de solicitação e os formatos de resposta, veja a documentação oficial da API.
Considerações Finais
Integrando o GroupDocs.Rewriter Cloud SDK for .NET em um projeto ASP.NET Core MVC é simples, desde que você siga este guia passo a passo para integrar com ASP.NET Core MVC. A biblioteca cuida do trabalho pesado de reescrita de linguagem natural, permitindo que você se concentre na interface do usuário e na lógica de negócios. Lembre‑se de proteger seu AppSid e AppKey, usar a licença temporária para avaliação e atualizar para uma licença completa para cargas de trabalho de produção. Com o código e os exemplos cURL em mãos, você agora pode adicionar reescrita inteligente de texto a qualquer aplicação web .NET.
Perguntas Frequentes
Como o guia passo a passo para integrar com ASP.NET Core MVC lida com respostas de erro da API?
O exemplo de controlador verifica ModelState.IsValid antes de chamar a API e captura o RewriteResponse. Se a API retornar um erro, o objeto response será nulo, e a visualização simplesmente exibirá uma saída vazia. Para tratamento detalhado de erros, consulte a documentação oficial.
Posso reescrever documentos além de texto simples, como DOCX ou PDF, usando a mesma abordagem?
Sim. A Rewriter API aceita texto bruto extraído de formatos suportados. Você pode primeiro usar GroupDocs.Parser ou GroupDocs.Conversion para extrair o texto, então passá‑lo para o endpoint de reescrita. Ambos os SDKs estão listados na família de produtos GroupDocs.
É possível executar a operação de reescrita de forma assíncrona em um site de alto tráfego?
Com certeza. O controlador usa await _rewriterApi.RewriteAsync(...), que é totalmente assíncrono e escala com o pipeline assíncrono do ASP.NET Core. Isso se encaixa no padrão demonstrado no guia passo a passo para Integrar com ASP.NET Core MVC.
Onde posso obter uma licença temporária para teste?
Uma licença temporária está disponível na página de licença temporária. Ela permite que você avalie o SDK sem se comprometer com uma compra.
