Minimalne API w .NET 6. Jak napisać pełnoprawne API w mgnieniu oka

Przygoda każdego programisty zaczyna się od podstaw. Ostatnio natknęłam się na bardzo ciekawy temat, który chciałabym Wam dzisiaj przybliżyć – minimalne API. Zanim do niego przejdziemy, powinniśmy zacząć od samego pojęcia jakim jest wyżej wspomniane API.
API (z ang. Application Programming Interface) oznacza Interfejs Programowania Aplikacji, czyli to w jaki sposób programy oraz podprogramy komunikują się ze sobą. Dotychczas w C# najprostszy kontroler mogliśmy wykonać w taki sposób:
using System.Collections.Generic; using System.Web.Http; namespace MyWebAPI.Controllers { public class ValuesController : ApiController { [HttpGet] public IEnumerable<string> Values() { return new string[] { "value1", "value2" }; } [HttpGet] public string Value(int id) { return "value"; } [HttpPost] public void SaveNewValue([FromBody] string value) { } [HttpPut] public void UpdateValue(int id, [FromBody] string value) { } [HttpDelete] public void RemoveValue(int id) { } } }
Spis treści
Funkcjonalne API w trzech linijkach?
Minimalne API umożliwia budowanie interfejsów z użyciem platformy .NET w prostszy sposób niż dotychczas. Nie musisz przejmować się skomplikowaną strukturą oraz dużą ilością kodu. Najprostszą metodę HTTP, w tym przypadku GET, możesz napisać za pomocą zaledwie trzech linijek.
var app = WebApplication.Create(args); app.MapGet("/", () => "Hello World!"); app.Run();
To wszystko! Podczas kompilowania powyższego kodu, zwrócony zostanie kod odpowiedzi 200 OK, z zawartością „Hello World!”. Pewnie zadajesz sobie pytanie, jak to jest możliwe? Już spieszę z pomocą! Dzięki instrukcjom najwyższego poziomu – funkcji kompilatora, wprowadzonej w C# 9 – jesteś w stanie wykonać napisany przez siebie program bez deklaracji przestrzeni nazw, deklaracji klasy, a nawet metody Main(string[] args)
.
W podobny sposób możesz obsłużyć również inne metody HTTP.
app.MapPost("/", () => "This is a POST"); app.MapPut("/", () => "This is a PUT"); app.MapDelete("/", () => "This is a DELETE");
Wszystko w jednym pliku, czyli globalne dyrektywy
A co z dyrektywą using
? W .NET 6, ASP.NET Core znajdować się one będą globalnie, w jednym pliku. Dzięki temu, unikniemy konieczności deklarowania ich w każdym pliku źródłowym z osobna.
global using System; global using System.Net.Http; global using System.Threading.Tasks; global using Microsoft.AspNetCore.Builder; global using Microsoft.Extensions.Hosting; global using Microsoft.Extensions.DependencyInjection;
Deklarowanie modelu jeszcze nigdy nie było takie proste
Co więcej, wystarczy jeden dodatkowy wiersz kodu, aby móc pracować z rekordem osoby. Parametry pozycyjne umożliwiają nam zadeklarowanie modelu w zaledwie jednej linijce.
var app = WebApplication.Create(args); app.MapGet("/person", () => new Person("Amy", "Scott")); await app.RunAsync(); public record Person(string FirstName, string LastName);
Czy minimalne API to dobre rozwiązanie?
Jeśli dopiero zaczynasz tworzyć interfejsy API w ASP.NET Core, prawdopodobnie jest to mile widziane ulepszenie. Jednakże, czy spełni ono wszystkie wymagania na skali produkcyjnej?
Minimalne API jest alternatywnym oraz szybszym sposobem budowania usług http, które według mnie będzie bardziej przystępną metodą, w szczególności dla osób zaczynających swoją przygodę z programowaniem.
Trzeba pamiętać, że to rozwiązanie nie zastąpi nam kompleksowego framework’a MVC.
Zdjęcie główne artykułu pochodzi z unsplash.com.
Podobne artykuły

Kalendarz dni wolnych 2025: jak zaplanować długie weekendy

Nie odpowiadaj za błędy własnym majątkiem, czyli krok po kroku do zabezpieczenia swojej pracy

Najważniejsze wskazówki dla liderów w 2024. Jak stworzyć zdrową atmosferę w miejscu pracy?

Od kodowania do budowania relacji — rola komunikacji w pracy projektowej

Jak napisać własny emulator Chip-8?

Jak wygrać konkurs dla programistów w 5 krokach?

Poznaj 5 najbardziej docenianych umiejętności w branży IT
