การแปลงข้อความดิบให้เป็นเนื้อหาที่ขัดเกลาและเป็นมิตรกับ SEO เป็นความท้าทายประจำวันสำหรับนักพัฒนา .NET จำนวนมากที่สร้างเว็บแอปพลิเคชันที่มีเนื้อหามากมาย GroupDocs.Rewriter Cloud SDK for .NET ให้ API ที่ทรงพลังซึ่งทำการเขียนประโยคใหม่โดยคงความหมายไว้ คู่มือขั้นตอนต่อขั้นตอนนี้สำหรับการรวมกับ ASP.NET Core MVC จะสาธิตวิธีตั้งค่าห้องสมุด, กำหนดค่าประจำตัว, ดำเนินการตรรกะการเขียนใหม่ในคอนโทรลเลอร์, และแสดงผลลัพธ์ใน Razor view.
ข้อกำหนดของกรณีการใช้งาน
องค์กรที่สร้างบทความที่ผู้ใช้สร้างขึ้น รายละเอียดผลิตภัณฑ์ หรือข้อความการตลาดมักต้องการปรับปรุงความอ่านง่ายโดยไม่ต้องแก้ไขด้วยตนเอง ความต้องการสำหรับสถานการณ์เช่นนี้รวมถึง:
- การเขียนข้อความใหม่แบบเรียลไทม์โดยตรงจากแบบฟอร์มเว็บ
- การจัดการข้อมูลรับรอง API อย่างปลอดภัยบนฝั่งเซิร์ฟเวอร์
- การผสานรวมอย่างไร้รอยต่อกับ pipeline ASP.NET Core MVC ที่มีอยู่
การใช้โค้ดการจัดการสตริงทั่วไปอย่างรวดเร็วจะทำให้เกิดข้อผิดพลาดและไม่สามารถขยายได้ ซึ่งเป็นเหตุผลที่ทำให้ไลบรารีการเขียนใหม่เอกสารที่เฉพาะเจาะจงเป็นสิ่งจำเป็น
การเลือก GroupDocs.Rewriter Cloud SDK for .NET สำหรับงาน
GroupDocs.Rewriter Cloud SDK for .NET มี REST‑based API ที่รองรับหลายภาษา, โหมดการเขียนใหม่ที่ปรับแต่งได้, และการประมวลผลที่มีประสิทธิภาพสูง. ความสามารถหลักที่ตรงกับกรณีการใช้งานคือ:
- RewriteModeEnum.Rewrite - สร้างการเขียนใหม่ของข้อความอินพุตในรูปแบบภาษาธรรมชาติ.
- ไคลเอนต์ที่เป็นมิตรกับ DI - สามารถลงทะเบียนเป็น singleton ในคอนเทนเนอร์บริการ ASP.NET Core.
- การพิมพ์แบบเข้มงวดและการสนับสนุนแบบ async - เข้ากันได้อย่างเป็นธรรมชาติกับรูปแบบการทำงานแบบอะซิงโครนัสของ .NET สมัยใหม่.
คู่มือแบบขั้นตอนเพื่อการรวมกับ ASP.NET Core MVC แสดงให้เห็นว่าความสามารถเหล่านี้สอดคล้องกับความต้องการอย่างไร สำหรับข้อมูล API อย่างละเอียด ดูที่ เอกสารอย่างเป็นทางการ และ อ้างอิง API.
คู่มือการทำตามขั้นตอนเพื่อบูรณาการกับ ASP.NET Core MVC
คู่มือขั้นตอนต่อขั้นตอนนี้สำหรับการรวมกับ ASP.NET Core MVC จะพาคุณผ่านแต่ละขั้นตอนการกำหนดค่าที่จำเป็น
ติดตั้งแพ็กเกจ SDK
เพิ่มแพ็กเกจ NuGet ไปยังโครงการของคุณ.
dotnet add package GroupDocs.Rewriter-Cloud
คุณยังสามารถดาวน์โหลดไฟล์ไบนารีได้จาก หน้าดาวน์โหลด.
เพิ่มการกำหนดค่าสำหรับข้อมูลประจำตัวของ Rewriter
วาง AppSid และ AppKey ของคุณในไฟล์กำหนดค่า ตัวอย่างโค้ดด้านล่างจะเพิ่มค่าเหล่านี้ในหน่วยความจำเพื่อความง่าย
builder.Configuration.AddInMemoryCollection(new[]
{
new KeyValuePair<string,string>("GroupDocsRewriter:AppSid", "YOUR_APP_SID"),
new KeyValuePair<string,string>("GroupDocsRewriter:AppKey", "YOUR_APP_KEY")
});
ลงทะเบียนไคลเอนต์ Rewriter API ใน DI
ไคลเอนต์ SDK ถูกลงทะเบียนเป็น singleton เพื่อให้สามารถฉีดเข้าไปในคอนโทรลเลอร์ได้
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 Controller และ View Model
คอนโทรลเลอร์รับข้อความต้นฉบับ, เรียกใช้ Rewriter API, และส่งคืนผลลัพธ์ที่เขียนใหม่.
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);
}
}
โมเดลมุมมองที่แนบมานี้เก็บสตริงอินพุตและเอาต์พุต
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;
}
สร้าง Razor View สำหรับการป้อนข้อความและการแสดงผล
หน้า Razor แสดงแบบฟอร์มง่าย ๆ และแสดงข้อความที่ถูกเขียนใหม่เมื่อพร้อมใช้งาน
@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
ตัวอย่างด้านล่างมีไฟล์ซอร์สทั้งหมดที่จำเป็นสำหรับการรันโซลูชัน
// ---------------------------------------------------
// 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");}
}
หมายเหตุ: ตัวอย่างโค้ดนี้แสดงการทำงานหลัก ก่อนนำไปใช้ในโครงการของคุณ โปรดตรวจสอบให้แน่ใจว่าได้อัปเดตเส้นทางไฟล์และค่าการกำหนดค่าให้ตรงกับสภาพแวดล้อมจริงของคุณ ตรวจสอบว่าขึ้นตอนการพึ่งพาที่จำเป็นทั้งหมดได้ติดตั้งอย่างถูกต้อง และทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนา หากคุณพบปัญหาใด ๆ โปรดดูที่ เอกสารอย่างเป็นทางการ หรือ ติดต่อ ทีมสนับสนุน เพื่อขอความช่วยเหลือ
การดำเนินการเขียนใหม่เอกสารผ่าน REST API ด้วย cURL
ด้านล่างเป็นขั้นตอนการทำงานของ cURL อย่างรวดเร็วที่ทำการเขียนใหม่เดียวกันผ่าน GroupDocs Rewriter REST endpoints.
รับรองและรับโทเค็นการเข้าถึง
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"}'
การตอบสนองจะคืนค่า access_token ที่คุณจะใช้ในการเรียกต่อไป
อัปโหลดข้อความต้นฉบับ (ไม่บังคับสำหรับไฟล์ขนาดใหญ่)
curl -X POST "https://api.groupdocs.cloud/v1/storage/file/upload" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@input.txt"
ดำเนินการเขียนทับ
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 มีข้อความที่เขียนใหม่ในฟิลด์ result.text
ดาวน์โหลดผลลัพธ์ (หากคุณได้บันทึกเป็นไฟล์)
curl -X GET "https://api.groupdocs.cloud/v1/storage/file/download?path=output.txt" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o rewritten.txt
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับพารามิเตอร์ของคำขอและรูปแบบการตอบกลับ โปรดดูที่ เอกสาร API อย่างเป็นทางการ.
ความคิดสุดท้าย
การรวม GroupDocs.Rewriter Cloud SDK for .NET เข้ากับโครงการ ASP.NET Core MVC นั้นทำได้ง่ายเมื่อคุณทำตามคู่มือขั้นตอนต่อขั้นตอนเพื่อรวมกับ ASP.NET Core MVC ไลบรารีจัดการการทำงานหนักของการเขียนใหม่ด้วยภาษาธรรมชาติ ทำให้คุณสามารถมุ่งเน้นที่ UI และตรรกะธุรกิจได้ จำไว้ว่าต้องรักษา AppSid และ AppKey ของคุณให้ปลอดภัย ใช้ใบอนุญาตชั่วคราวสำหรับการประเมินผล และอัปเกรดเป็นใบอนุญาตเต็มสำหรับงานผลิตจริง ด้วยโค้ดและตัวอย่าง cURL ที่คุณมีอยู่ คุณสามารถเพิ่มการเขียนใหม่ของข้อความอัจฉริยะให้กับแอปพลิเคชันเว็บ .NET ใดก็ได้
คำถามที่พบบ่อย
คู่มือขั้นตอนต่อขั้นตอนในการรวมกับ ASP.NET Core MVC จัดการกับการตอบสนองข้อผิดพลาดจาก API อย่างไร?
ตัวอย่างคอนโทรลเลอร์ตรวจสอบ ModelState.IsValid ก่อนเรียก API และจับ RewriteResponse หาก API ส่งคืนข้อผิดพลาด วัตถุ response จะเป็น null และวิวจะแสดงผลลัพธ์ว่างเปล่าเท่านั้น สำหรับการจัดการข้อผิดพลาดอย่างละเอียด โปรดดูที่ เอกสารอย่างเป็นทางการ.
ฉันสามารถเขียนใหม่เอกสารที่ไม่ใช่ข้อความธรรมดา เช่น DOCX หรือ PDF ด้วยวิธีเดียวกันได้หรือไม่?
ใช่. Rewriter API ยอมรับข้อความดิบที่สกัดจากรูปแบบที่รองรับ คุณสามารถใช้ GroupDocs.Parser หรือ GroupDocs.Conversion เพื่อสกัดข้อความก่อน แล้วส่งไปยัง endpoint การเขียนใหม่ ทั้งสอง SDK ถูกระบุในกลุ่มผลิตภัณฑ์ของ GroupDocs
สามารถทำการดำเนินการ rewrite อย่างอะซิงโครนัสในเว็บไซต์ที่มีการเข้าชมสูงได้หรือไม่?
แน่นอน. ตัวควบคุมใช้ await _rewriterApi.RewriteAsync(...) ซึ่งทำงานแบบอะซิงโครนัสเต็มรูปแบบและสเกลได้กับ pipeline แบบอะซิงโครนัสของ ASP.NET Core. สิ่งนี้สอดคล้องกับรูปแบบที่แสดงในคู่มือขั้นตอนต่อขั้นตอนเพื่อบูรณาการกับ ASP.NET Core MVC.
ฉันจะได้รับลิขสิทธิ์ชั่วคราวสำหรับการทดสอบได้จากที่ไหน?
ลิขสิทธิ์ชั่วคราวพร้อมให้ใช้งานจาก หน้าลิขสิทธิ์ชั่วคราว. มันช่วยให้คุณประเมิน SDK ได้โดยไม่ต้องซื้อ.
