Ham metni cilalı, SEO‑dostu içeriğe dönüştürmek, içerik‑zengin web uygulamaları geliştiren birçok .NET geliştiricisi için günlük bir zorluktur. GroupDocs.Rewriter Cloud SDK for .NET anlamı koruyarak cümleleri yeniden yazan güçlü bir API sunar. ASP.NET Core MVC ile Entegrasyon için bu adım‑adım kılavuz, kütüphaneyi nasıl kuracağınızı, kimlik bilgilerini nasıl yapılandıracağınızı, bir denetleyicide yeniden yazma mantığını nasıl uygulayacağınızı ve sonuçları bir Razor görünümünde nasıl render edeceğinizi gösterir.
Kullanım Durumu Gereksinimleri
Kullanıcı‑tarafından oluşturulan makaleler, ürün açıklamaları veya pazarlama metinleri üreten işletmeler, genellikle manuel düzenleme yapmadan okunabilirliği artırmak ister. Bu senaryo için gereksinimler şunlardır:
- Web formundan doğrudan gerçek zamanlı metin yeniden yazma.
- Sunucu tarafında API kimlik bilgilerinin güvenli işlenmesi.
- Mevcut ASP.NET Core MVC işlem hattıyla sorunsuz entegrasyon.
Genel dize‑manipülasyonu kodu kullanmak hızla hata‑eğilimli hâle gelir ve ölçeklenemez, bu yüzden özel bir belge yeniden yazma kütüphanesi gereklidir.
İş için GroupDocs.Rewriter Cloud SDK for .NET seçimi
GroupDocs.Rewriter Cloud SDK for .NET, birden çok dili destekleyen, özelleştirilebilir yeniden yazma modları ve yüksek‑performanslı işleme sahip bir REST‑tabanlı API sunar. Kullanım durumuyla eşleşen temel yetenekleri şunlardır:
- RewriteModeEnum.Rewrite - giriş metninin doğal dilde yeniden yazımını üretir.
- DI‑friendly client - ASP.NET Core hizmet konteynerinde tek bir örnek (singleton) olarak kaydedilebilir.
- Strong typing and async support - modern .NET asenkron desenlerine doğal olarak uyar.
Adım Adım kılavuz, ASP.NET Core MVC ile Entegrasyonun bu yeteneklerin gereksinimlere nasıl eşlendiğini gösterir. Ayrıntılı API bilgileri için resmi belgeler ve API referansı sayfalarına bakın.
ASP.NET Core MVC ile Entegrasyon için Adım‑Adım Kılavuzun Uygulanması
Bu adım adım kılavuz, ASP.NET Core MVC ile entegrasyon için gerekli her yapılandırma adımını size gösterecektir.
SDK Paketi Yükleyin
Projenize NuGet paketini ekleyin.
dotnet add package GroupDocs.Rewriter-Cloud
İkili dosyaları ayrıca indirme sayfasından indirebilirsiniz.
Yeniden Yazıcı Kimlik Bilgileri İçin Yapılandırma Ekle
AppSid ve AppKey’inizi yapılandırmaya yerleştirin. Aşağıdaki snippet, bunları basitlik açısından bellekte ekler.
builder.Configuration.AddInMemoryCollection(new[]
{
new KeyValuePair<string,string>("GroupDocsRewriter:AppSid", "YOUR_APP_SID"),
new KeyValuePair<string,string>("GroupDocsRewriter:AppKey", "YOUR_APP_KEY")
});
DI içinde Rewriter API İstemcisini Kaydedin
SDK istemcisi, denetleyicilere enjekte edilebilmesi için bir singleton olarak kaydedilir.
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);
});
MVC Denetleyicisini ve Görünüm Modelini Oluşturun
Denetleyici, orijinal metni alır, Rewriter API’sini çağırır ve yeniden yazılmış sonucu döndürür.
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);
}
}
Eşlik eden view model, giriş ve çıkış stringlerini tutar.
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;
}
Metin Girişi ve Çıkışı için Razor Görünümünü Oluşturun
Razor sayfası basit bir form sunar ve mevcut olduğunda yeniden yazılmış metni görüntüler.
@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");}
}
ASP.NET Core MVC’de Belge Yeniden Yazma için Tam Çalışan Örnek
Aşağıdaki örnek, çözümü çalıştırmak için gereken tam kaynak dosyalarını içerir.
// ---------------------------------------------------
// 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");}
}
Not: Bu kod örneği temel işlevselliği göstermektedir. Projenizde kullanmadan önce, dosya yollarını ve yapılandırma değerlerini gerçek ortamınıza uygun şekilde güncellediğinizden, tüm gerekli bağımlılıkların doğru şekilde yüklendiğinden emin olun ve geliştirme ortamınızda kapsamlı bir şekilde test edin. Herhangi bir sorunla karşılaşırsanız, lütfen official documentation adresine bakın veya support team ile iletişime geçin.
cURL Kullanarak REST API ile Belge Yeniden Yazma
Aşağıda, GroupDocs Rewriter REST uç noktaları aracılığıyla aynı yeniden yazma işlemini gerçekleştiren hızlı bir cURL iş akışı bulunmaktadır.
Kimlik Doğrulama ve Erişim Token’ı Al
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"}'
Yanıt, sonraki çağrılarda kullanacağınız bir access_token döndürür.
Kaynak Metni Yükle (büyük dosyalar için isteğe bağlı)
curl -X POST "https://api.groupdocs.cloud/v1/storage/file/upload" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@input.txt"
Yeniden Yazma İşlemini Gerçekleştir
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"
}'
JSON yanıtı, yeniden yazılmış metni result.text alanında içerir.
Sonucu İndir (eğer dosya olarak kaydettiyseniz)
curl -X GET "https://api.groupdocs.cloud/v1/storage/file/download?path=output.txt" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o rewritten.txt
İstek parametreleri ve yanıt formatları hakkında daha fazla ayrıntı için, resmi API belgelerine bakın.
Son Düşünceler
GroupDocs.Rewriter Cloud SDK for .NET entegrasyonu, ASP.NET Core MVC projesine ASP.NET Core MVC ile Entegre Etme adım adım rehberini izlediğinizde oldukça basittir. Kütüphane, doğal dil yeniden yazımının zorlu işlerini üstlenir ve UI ile iş mantığına odaklanmanızı sağlar. AppSid ve AppKey’inizi güvence altına almayı, değerlendirme için geçici lisansı kullanmayı ve üretim yükleri için tam lisansa yükseltmeyi unutmayın. Kod ve cURL örneklerine sahip olarak, artık herhangi bir .NET web uygulamasına akıllı metin yeniden yazımı ekleyebilirsiniz.
SSS
ASP.NET Core MVC ile Entegrasyon için Adım Adım kılavuz, API’den gelen hata yanıtlarını nasıl ele alır?
Denetleyici örneği, API’yi çağırmadan önce ModelState.IsValid kontrol eder ve RewriteResponse‘u yakalar. API bir hata döndürürse, response nesnesi null olur ve görünüm sadece boş bir çıktı gösterir. Ayrıntılı hata işleme için resmi belgelere bakın.
Düz metin dışındaki belgeleri, örneğin DOCX veya PDF, aynı yöntemle yeniden yazabilir miyim?
Evet. Rewriter API, desteklenen formatlardan çıkarılan ham metni kabul eder. Öncelikle GroupDocs.Parser veya GroupDocs.Conversion’ı kullanarak metni çıkarabilirsiniz, ardından bunu yeniden yazma uç noktasına gönderebilirsiniz. Her iki SDK da GroupDocs ürün ailesinde listelenmiştir.
Yüksek trafikli bir web sitesinde yeniden yazma işlemini eşzamanlı olarak çalıştırmak mümkün mü?
Kesinlikle. Kontrolcü await _rewriterApi.RewriteAsync(...) kullanır, bu tamamen eşzamanlıdır ve ASP.NET Core’un async işlem hattıyla ölçeklenir. Bu, ASP.NET Core MVC ile Entegrasyon için Adım Adım kılavuzda gösterilen modele uyar.
Test için geçici bir lisansı nereden alabilirim?
Geçici bir lisans, geçici lisans sayfası üzerinden temin edilebilir. Satın alma taahhüdünde bulunmadan SDK’yı değerlendirmenizi sağlar.
