Tag Archives: asp.net core

Minimal API | Kuruluş ve Swagger Kurulumu

Minimal API‘ler, .NET 6 ile birlikte gelen, minimum bağımlılıkla HTTP API’leri oluşturmak için tasarlandı. ASP.NET Core‘da yalnızca minimum dosyaları, özellikleri ve bağımlılıkları dahil etmek isteyen mikro hizmetler ve uygulamalar için idealdirler.

Minimal API için en basitinden 4 satır koda ihtiyacımız var.

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();

İşte bu kadar. Elinizde çalışan bir http restful bir api’ınız oldu. Bu geliştirdiğiniz api artık postman üzerinden denemeye hazır.

Swagger nedir peki?

Swagger, JSON kullanılarak ifade edilen RESTful API‘leri açıklamak için bir arayüz tanımlama dilidir. Swagger, RESTful web hizmetlerini tasarlamak, oluşturmak, dökumante etmek ve kullanmak için bir dizi açık kaynaklı yazılım aracıyla birlikte kullanılır. Swagger, otomatik dokümantasyon, kod oluşturma (birçok programlama dilinde) ve test senaryosu oluşturma içerir.

Swagger için kullanılan methodların açıklaması şu şekilde;

app.UseSwagger — ara katman yazılımının oluşturulan OpenAPI açıklamasını JSON içeriği olarak sunmasını sağlar.

app.UseSwaggerUI — Middleware’in Swagger UI öğelerine hizmet etmesini sağlar.

SwaggerEndpoint — OpenAPI açıklamasının endpoint’ini belirtir.

Peki klasik controller ile geliştirilen api’lerden ne farkı var Minimal api’nin?

☑️Filtre desteği yok. AuthorizationFilter, ActionFilter, ExceptionFilter, ResultFilter gibi mesela.

☑️ModelValidator desteği yok.

☑️ModelBinder desteği yok. Custom olarak eklenebilir tabi bu.

✅Github reposu: https://github.com/sonergonul/MinimalAPI

Kaynaklar:

https://docs.microsoft.com/en-us/aspnet/core/tutorials/min-web-api?view=aspnetcore-6.0&tabs=visual-studio

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis?view=aspnetcore-6.0

https://medium.com/geekculture/minimal-apis-in-net-6-a-complete-guide-beginners-advanced-fd64f4da07f5

https://dotnetcoretutorials.com/2021/07/16/building-minimal-apis-in-net-6/

https://dev.to/moe23/getting-started-with-minimal-apis-in-net-6-4mi4