Mengubah teks mentah menjadi konten yang halus dan ramah SEO merupakan tantangan harian bagi banyak pengembang .NET yang membangun aplikasi web kaya konten. GroupDocs.Rewriter Cloud SDK for .NET menyediakan API kuat yang menulis ulang kalimat sambil mempertahankan makna. Panduan langkah‑demi‑langkah ini untuk mengintegrasikan dengan ASP.NET Core MVC menunjukkan cara menyiapkan perpustakaan, mengonfigurasi kredensial, menerapkan logika penulisan ulang dalam sebuah controller, dan menampilkan hasilnya di tampilan Razor.
Persyaratan Kasus Penggunaan
Perusahaan yang menghasilkan artikel buatan pengguna, deskripsi produk, atau salinan pemasaran sering kali perlu meningkatkan keterbacaan tanpa penyuntingan manual. Persyaratan untuk skenario semacam itu meliputi:
- Penulisan ulang teks secara real‑time langsung dari formulir web.
- Penanganan aman kredensial API di sisi server.
- Integrasi mulus dengan pipeline ASP.NET Core MVC yang ada.
Menggunakan kode manipulasi string secara umum dengan cepat menjadi rawan kesalahan dan tidak dapat diskalakan, itulah mengapa perpustakaan penulisan ulang dokumen yang khusus sangat penting.
Memilih GroupDocs.Rewriter Cloud SDK for .NET untuk Pekerjaan
GroupDocs.Rewriter Cloud SDK for .NET menawarkan API berbasis REST‑based yang mendukung banyak bahasa, mode penulisan ulang yang dapat disesuaikan, dan pemrosesan berperforma tinggi. Kemampuan utama yang sesuai dengan kasus penggunaan adalah:
- RewriteModeEnum.Rewrite - menghasilkan penulisan ulang bahasa alami dari teks input.
- DI‑friendly client - dapat didaftarkan sebagai singleton di kontainer layanan ASP.NET Core.
- Strong typing and async support - secara alami cocok dengan pola asinkron modern .NET.
Panduan langkah-demi-langkah untuk mengintegrasikan dengan ASP.NET Core MVC menunjukkan bagaimana kemampuan ini dipetakan ke persyaratan. Untuk informasi API yang detail, lihat dokumentasi resmi dan referensi API.
Panduan Langkah‑ demi‑ Langkah untuk Mengintegrasikan dengan ASP.NET Core MVC
Panduan langkah-demi-langkah untuk mengintegrasikan dengan ASP.NET Core MVC ini akan memandu Anda melalui setiap langkah konfigurasi yang diperlukan.
Instal Paket SDK
Tambahkan paket NuGet ke proyek Anda.
dotnet add package GroupDocs.Rewriter-Cloud
Anda juga dapat mengunduh binary dari halaman unduhan.
Tambahkan Konfigurasi untuk Kredensial Rewriter
Letakkan AppSid dan AppKey Anda di konfigurasi. Potongan kode di bawah menambahkannya dalam memori untuk kesederhanaan.
builder.Configuration.AddInMemoryCollection(new[]
{
new KeyValuePair<string,string>("GroupDocsRewriter:AppSid", "YOUR_APP_SID"),
new KeyValuePair<string,string>("GroupDocsRewriter:AppKey", "YOUR_APP_KEY")
});
Daftarkan Klien API Rewriter di DI
Klien SDK didaftarkan sebagai singleton sehingga dapat disuntikkan ke dalam controller.
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);
});
Buat Controller MVC dan View Model
Kontroler menerima teks asli, memanggil API Rewriter, dan mengembalikan hasil yang ditulis ulang.
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);
}
}
Model tampilan yang menyertainya menyimpan string input dan output.
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;
}
Bangun Razor View untuk Input dan Output Teks
Halaman Razor menampilkan formulir sederhana dan menampilkan teks yang telah ditulis ulang ketika tersedia.
@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");}
}
Contoh Lengkap yang Berfungsi untuk Penulisan Ulang Dokumen di ASP.NET Core MVC
Contoh di bawah ini berisi semua file sumber yang diperlukan untuk menjalankan solusi.
// ---------------------------------------------------
// 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");}
}
Catatan: Contoh kode ini menunjukkan fungsi inti. Sebelum menggunakannya dalam proyek Anda, pastikan untuk memperbarui semua jalur file dan nilai konfigurasi agar sesuai dengan lingkungan Anda yang sebenarnya, verifikasi bahwa semua dependensi yang diperlukan telah terpasang dengan benar, dan uji secara menyeluruh di lingkungan pengembangan Anda. Jika Anda menemukan masalah, silakan merujuk ke dokumentasi resmi atau hubungi tim dukungan untuk bantuan.
Menjalankan Penulisan Ulang Dokumen melalui REST API menggunakan cURL
Berikut adalah alur kerja cURL cepat yang melakukan operasi penulisan ulang yang sama melalui endpoint REST GroupDocs Rewriter.
Autentikasi dan Dapatkan Token Akses
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"}'
Respons mengembalikan access_token yang akan Anda gunakan pada panggilan berikutnya.
Unggah Teks Sumber (opsional untuk file besar)
curl -X POST "https://api.groupdocs.cloud/v1/storage/file/upload" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@input.txt"
Jalankan Operasi Penulisan Ulang
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"
}'
Respons JSON berisi teks yang ditulis ulang di bidang result.text.
Unduh Hasil (jika Anda menyimpannya sebagai file)
curl -X GET "https://api.groupdocs.cloud/v1/storage/file/download?path=output.txt" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o rewritten.txt
Untuk detail lebih lanjut tentang parameter permintaan dan format respons, lihat dokumentasi API resmi.
Kesimpulan
Mengintegrasikan GroupDocs.Rewriter Cloud SDK for .NET ke dalam proyek ASP.NET Core MVC sangat mudah setelah Anda mengikuti panduan langkah demi langkah untuk Mengintegrasikan dengan ASP.NET Core MVC. Perpustakaan ini menangani pekerjaan berat dalam penulisan ulang bahasa alami, memungkinkan Anda fokus pada UI dan logika bisnis. Ingatlah untuk mengamankan AppSid dan AppKey Anda, gunakan lisensi sementara untuk evaluasi, dan tingkatkan ke lisensi penuh untuk beban kerja produksi. Dengan kode dan contoh cURL di tangan, Anda kini dapat menambahkan penulisan ulang teks cerdas ke aplikasi web .NET apa pun.
FAQs
Bagaimana panduan langkah-demi-langkah untuk Mengintegrasikan dengan ASP.NET Core MVC menangani respons error dari API?
Contoh controller memeriksa ModelState.IsValid sebelum memanggil API dan menangkap RewriteResponse. Jika API mengembalikan error, objek response akan bernilai null, dan tampilan hanya akan menampilkan output kosong. Untuk penanganan error yang lebih detail, lihat dokumentasi resmi.
Apakah saya dapat menulis ulang dokumen selain teks biasa, seperti DOCX atau PDF, menggunakan pendekatan yang sama?
Ya. Rewriter API menerima teks mentah yang diekstrak dari format yang didukung. Anda dapat terlebih dahulu menggunakan GroupDocs.Parser atau GroupDocs.Conversion untuk mengekstrak teks, lalu mengirimkannya ke endpoint penulisan ulang. Kedua SDK terdaftar dalam keluarga produk GroupDocs.
Apakah memungkinkan menjalankan operasi rewrite secara asynchronous di situs web dengan lalu lintas tinggi?
Tentu saja. Kontroler menggunakan await _rewriterApi.RewriteAsync(...), yang sepenuhnya asynchronous dan skalabel dengan pipeline async ASP.NET Core. Ini sesuai dengan pola yang ditunjukkan dalam panduan Langkah-demi-Langkah untuk Mengintegrasikan dengan ASP.NET Core MVC.
Di mana saya dapat memperoleh lisensi sementara untuk pengujian?
Lisensi sementara tersedia di halaman lisensi sementara. Ini memungkinkan Anda mengevaluasi SDK tanpa harus melakukan pembelian.
