Convertir du texte brut en contenu poli et optimisé pour le SEO est un défi quotidien pour de nombreux développeurs .NET qui créent des applications web riches en contenu. GroupDocs.Rewriter Cloud SDK for .NET fournit une API puissante qui réécrit les phrases tout en préservant le sens. Ce guide étape par étape pour intégrer avec ASP.NET Core MVC vous montre comment configurer la bibliothèque, définir les informations d’identification, implémenter la logique de réécriture dans un contrôleur et afficher les résultats dans une vue Razor.
Exigences du cas d’utilisation
Les entreprises qui génèrent des articles créés par les utilisateurs, des descriptions de produits ou des textes marketing doivent souvent améliorer la lisibilité sans édition manuelle. Les exigences pour un tel scénario comprennent :
- Réécriture de texte en temps réel directement depuis un formulaire web.
- Gestion sécurisée des identifiants API côté serveur.
- Intégration transparente avec le pipeline ASP.NET Core MVC existant.
L’utilisation de code de manipulation de chaînes générique devient rapidement source d’erreurs et ne s’adapte pas à l’échelle, c’est pourquoi une bibliothèque dédiée à la réécriture de documents est essentielle.
Choisir GroupDocs.Rewriter Cloud SDK for .NET pour le travail
GroupDocs.Rewriter Cloud SDK for .NET propose une API basée sur REST qui prend en charge plusieurs langues, des modes de réécriture personnalisables et un traitement haute performance. Ses principales capacités correspondant au cas d’utilisation sont :
- RewriteModeEnum.Rewrite - produit une réécriture en langage naturel du texte d’entrée.
- DI‑friendly client - peut être enregistré en tant que singleton dans le conteneur de services ASP.NET Core.
- Strong typing and async support - s’intègre naturellement aux modèles asynchrones modernes de .NET.
Le guide étape par étape pour intégrer avec ASP.NET Core MVC montre comment ces capacités correspondent aux exigences. Pour des informations détaillées sur l’API, consultez la documentation officielle et la référence API.
Guide d’implémentation étape par étape pour intégrer avec ASP.NET Core MVC
Ce guide étape par étape pour intégrer avec ASP.NET Core MVC vous guidera à travers chaque étape de configuration requise.
Installer le package SDK
Ajoutez le package NuGet à votre projet.
dotnet add package GroupDocs.Rewriter-Cloud
Vous pouvez également télécharger les binaires depuis la page de téléchargement.
Ajouter la configuration des identifiants du réécrivain
Placez votre AppSid et votre AppKey dans la configuration. Le fragment ci‑dessous les ajoute en‑memory pour plus de simplicité.
builder.Configuration.AddInMemoryCollection(new[]
{
new KeyValuePair<string,string>("GroupDocsRewriter:AppSid", "YOUR_APP_SID"),
new KeyValuePair<string,string>("GroupDocsRewriter:AppKey", "YOUR_APP_KEY")
});
Enregistrer le client Rewriter API dans le DI
Le client SDK est enregistré en tant que singleton afin de pouvoir être injecté dans les contrôleurs.
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);
});
Créer le contrôleur MVC et le modèle de vue
Le contrôleur reçoit le texte original, appelle l’API Rewriter et renvoie le résultat réécrit.
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);
}
}
Le modèle de vue associé contient les chaînes d’entrée et de sortie.
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;
}
Construire la vue Razor pour l’entrée et la sortie de texte
La page Razor présente un formulaire simple et affiche le texte réécrit lorsqu’il est disponible.
@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");}
}
Exemple complet fonctionnel de réécriture de document dans ASP.NET Core MVC
L’exemple ci-dessous contient les fichiers source complets nécessaires pour exécuter la solution.
// ---------------------------------------------------
// 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");}
}
Note : Cet exemple de code démontre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour tous les chemins de fichiers et les valeurs de configuration pour qu’ils correspondent à votre environnement réel, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.
Exécution de la réécriture de document via l’API REST avec cURL
Voici un flux de travail cURL rapide qui effectue la même opération de réécriture via les points de terminaison REST de GroupDocs Rewriter.
Authentifier et obtenir le jeton d’accès
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"}'
La réponse renvoie un access_token que vous utiliserez dans les appels suivants.
Téléverser le texte source (facultatif pour les gros fichiers)
curl -X POST "https://api.groupdocs.cloud/v1/storage/file/upload" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@input.txt"
Exécuter l’opération de réécriture
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"
}'
La réponse JSON contient le texte réécrit dans le champ result.text.
Télécharger le résultat (si vous l’avez enregistré sous forme de fichier)
curl -X GET "https://api.groupdocs.cloud/v1/storage/file/download?path=output.txt" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o rewritten.txt
Pour plus de détails sur les paramètres de requête et les formats de réponse, consultez la documentation officielle de l’API.
Dernières réflexions
Intégrer le GroupDocs.Rewriter Cloud SDK for .NET dans un projet ASP.NET Core MVC est simple une fois que vous suivez ce guide étape par étape pour l’intégration avec ASP.NET Core MVC. La bibliothèque prend en charge le travail lourd de la réécriture en langage naturel, vous permettant de vous concentrer sur l’interface utilisateur et la logique métier. N’oubliez pas de sécuriser votre AppSid et votre AppKey, d’utiliser la licence temporaire pour l’évaluation, et de passer à une licence complète pour les charges de travail en production. Avec le code et les exemples cURL à portée de main, vous pouvez désormais ajouter une réécriture de texte intelligente à toute application web .NET.
FAQ
Comment le guide étape par étape pour intégrer avec ASP.NET Core MVC gère-t-il les réponses d’erreur de l’API ?
L’exemple de contrôleur vérifie ModelState.IsValid avant d’appeler l’API et capture le RewriteResponse. Si l’API renvoie une erreur, l’objet response sera nul, et la vue affichera simplement une sortie vide. Pour une gestion détaillée des erreurs, consultez la documentation officielle.
Puis-je réécrire des documents autres que du texte brut, tels que DOCX ou PDF, en utilisant la même approche ?
Oui. L’API Rewriter accepte le texte brut extrait des formats pris en charge. Vous pouvez d’abord utiliser GroupDocs.Parser ou GroupDocs.Conversion pour extraire le texte, puis le transmettre au point de terminaison de réécriture. Les deux SDK sont répertoriés dans la famille de produits GroupDocs.
Est-il possible d’exécuter l’opération de réécriture de manière asynchrone sur un site Web à fort trafic ?
Absolument. Le contrôleur utilise await _rewriterApi.RewriteAsync(...), qui est entièrement asynchrone et s’adapte au pipeline asynchrone d’ASP.NET Core. Cela correspond au modèle présenté dans le guide étape par étape pour intégrer avec ASP.NET Core MVC.
Où puis‑je obtenir une licence temporaire pour les tests ?
Une licence temporaire est disponible sur la page de licence temporaire. Elle vous permet d’évaluer le SDK sans vous engager à un achat.
