สํารวจ 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