สํารวจ API หลัก ASP.NET
ASP.NET Core สนับสนุนสองวิธีในการสร้าง API: วิธีการแบบอิงตามผู้ควบคุมและ API ที่น้อยที่สุด API ที่ยึดตามผู้ควบคุมเป็นวิธีการดั้งเดิมในการสร้าง API ที่แต่ละจุดสิ้นสุดถูกแมปเข้ากับระดับคอนโทรลเลอร์เฉพาะ ผู้ควบคุมจัดการคําขอ ดําเนินการตรรกะทางธุรกิจที่จําเป็นและส่งกลับการตอบสนอง
API ที่ยึดตามผู้ควบคุม
เว็บ API ที่ใช้ตัวควบคุมประกอบด้วยคลาสตัวควบคุมอย่างน้อยหนึ่งรายการที่สืบทอดมาจาก ControllerBase ต่อไปนี้เป็นตัวอย่างของตัวควบคุม:
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
โดยทั่วไปผู้ควบคุม API เว็บควรได้รับมาจาก ControllerBase แทนที่จะมาจาก Controller
Controller มาจาก ControllerBase และเพิ่มการสนับสนุนสําหรับมุมมอง ดังนั้นจึงเป็นสําหรับการจัดการเว็บเพจ ไม่ใช่คําขอ API ของเว็บ
คลาส ControllerBase มีคุณสมบัติและวิธีการมากมายที่เป็นประโยชน์สําหรับการจัดการคําขอ HTTP ตัวอย่างเช่น ในตัวอย่างโค้ดต่อไปนี้ CreatedAtAction ส่งกลับรหัสสถานะ 201:
[HttpPost]
[ProducesResponseType(StatusCodes.Status201Created)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public ActionResult<Pet> Create(Pet pet)
{
pet.Id = _petsInMemoryStore.Any() ?
_petsInMemoryStore.Max(p => p.Id) + 1 : 1;
_petsInMemoryStore.Add(pet);
return CreatedAtAction(nameof(GetById), new { id = pet.Id }, pet);
}
API น้อยที่สุด
API แบบมินิมอลเป็นวิธีการที่ง่ายดายสําหรับการสร้าง HTTP API ที่รวดเร็วด้วย ASP.NET Core คุณสามารถสร้างจุดสิ้นสุด REST ที่ทํางานอย่างสมบูรณ์ด้วยโค้ดและการกําหนดค่าที่น้อยที่สุด ข้ามการยกระดับแบบดั้งเดิมโดยการประกาศเส้นทางและการดําเนินการ API ตัวอย่างเช่น โค้ดต่อไปนี้สร้าง API ที่รากของเว็บแอปที่ส่งกลับข้อความ "Hello World!"
var app = WebApplication.Create(args);
app.MapGet("/", () => "Hello World!");
app.Run();
API ส่วนใหญ่ยอมรับพารามิเตอร์เป็นส่วนหนึ่งของเส้นทาง
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/users/{userId}/books/{bookId}",
(int userId, int bookId) => $"The user id is {userId} and book id is {bookId}");
app.Run();
API น้อยที่สุดสนับสนุนการกําหนดค่าและการกําหนดเองที่จําเป็นในการปรับมาตราส่วนเป็นหลาย API จัดการเส้นทางที่ซับซ้อน ใช้กฎการรับรองความถูกต้อง และควบคุมเนื้อหาของการตอบสนอง API