ASP.NET Çekirdek API'lerini keşfetme
ASP.NET Core, API oluşturmaya yönelik iki yaklaşımı destekler: denetleyici tabanlı bir yaklaşım ve en düşük API'ler. Denetleyici tabanlı API, her uç noktanın belirli bir denetleyici sınıfına eşlendiği API'ler oluşturmaya yönelik geleneksel bir yaklaşımdır. Denetleyici isteği işler, gerekli iş mantığını gerçekleştirir ve bir yanıt döndürür.
Denetleyici tabanlı API
Denetleyici tabanlı web API'leri, ControllerBasetüretilen bir veya daha fazla denetleyici sınıfından oluşur. Aşağıda bir denetleyici örneği verilmiştir:
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
Web API denetleyicilerinin genellikle ControllerBaseyerine Controller'dan türetilmesi gerekir.
Controller, ControllerBase'den türetilir ve görünümleri destekleyecek şekilde geliştirilmiştir, bu nedenle web API isteklerini değil, web sayfalarını işlemek içindir.
ControllerBase sınıfı, HTTP isteklerini işlemek için yararlı olan birçok özellik ve yöntem sağlar. Örneğin, aşağıdaki kod örneğinde CreatedAtAction bir 201 durum kodu döndürür:
[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);
}
Minimal API
Minimum API'ler, ASP.NET Core ile hızlı HTTP API'leri oluşturmaya yönelik basitleştirilmiş bir yaklaşımdır. En az kod ve yapılandırma ile tam işlevli REST uç noktaları oluşturabilirsiniz. API yollarını ve eylemlerini bildirerek geleneksel iskelet yapıyı atlayın. Örneğin, aşağıdaki kod web uygulamasının kökünde "Merhaba Dünya!" metnini döndüren bir API oluşturur.
var app = WebApplication.Create(args);
app.MapGet("/", () => "Hello World!");
app.Run();
Çoğu API, parametreleri yolun bir parçası olarak kabul eder.
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();
En düşük API'ler birden çok API'ye ölçeklendirmek, karmaşık yolları işlemek, yetkilendirme kuralları uygulamak ve API yanıtlarının içeriğini denetlemek için gereken yapılandırma ve özelleştirmeyi destekler.