Minimal API in C#: Simpel, Snel en Efficiënt API’s Bouwen

Technologie

Minimal API in C#: Simpel, Snel en Efficiënt API’s Bouwen

Minimal APIs in C# zijn een eenvoudige manier om webapplicaties te bouwen met ASP.NET Core. Vanaf .NET 6 heeft Microsoft de complexiteit van traditionele controllers en middleware vereenvoudigd, waardoor ontwikkelaars snel en eenvoudig API's kunnen maken.

Wat is een Minimal API?

Een Minimal API is een manier om HTTP-endpoints te definiëren met een eenvoudige syntax, waardoor het ontwikkelproces een stuk eenvoudiger wordt. In tegenstelling tot traditionele ASP.NET Core MVC-controllers, waarbij je controllers en attributen moet definiëren, kun je Minimal API's direct in je Program.cs bestand registreren.

Deze aanpak is ideaal voor kleine microservices, serverless toepassingen of eenvoudige RESTful API's waarbij overhead beperkt moet worden.

Voordelen van Minimal APIs

  • Minder code: Geen noodzaak voor controllers en attributen.
  • Snellere prestaties: Minder overhead vergeleken met volledige MVC-controllers.
  • Eenvoudiger te begrijpen: De code is rechttoe rechtaan en vereist minder configuratie.
  • Snelle ontwikkelingscyclus: Geschikt voor snelle development en kleinere projecten.
  • Ideaal voor lichtgewicht services: Minimale API's gebruikten minder geheugen, waardoor ze efficiënter zijn voor lichtgewicht services.

 

Waarom wel of niet kiezen voor Minimal API?

Minimal APIs zijn ideaal wanneer je een snelle en eenvoudige oplossing nodig hebt. Ze werken goed voor kleine microservices, prototypes en serverless applicaties waar minimale overhead vereist is. De eenvoud van de implementatie en de verbeterde prestaties maken het aantrekkelijk voor ontwikkelaars die een lichtgewicht API nodig hebben zonder de complexiteit van controllers en middleware.

Aan de andere kant zijn Minimal APIs mogelijk niet geschikt voor grotere en meer complexe applicaties. Wanneer je uitgebreide routing, validatie, en middleware nodig hebt, kan het zijn dat niet alle benodigde functies beschikbaar zijn en de traditionele MVC-structuur beter past.
Daarnaast is er een nieuwe manier van programmeren nodig en kan het zijn dat de kennis hiervoor ontbreekt.

 

Aan de slag met Minimal API

Om te beginnen met een Minimal API, moet je in Visual Studio een nieuw .NET 6 project (of nieuwer) aanmaken.
Open in het nieuwe project het bestand Program.cs en voeg de volgende code toe om een eenvoudige Minimal API te maken:

Hier gebeurt het volgende:

  1. WebApplication.CreateBuilder(args): Creëert een applicatiebouwer.
  2. builder.Build(): Bouwt de webapplicatie.
  3. app.MapGet("/hello", () => "Hallo, wereld!"): Registreert een HTTP GET-route die een string retourneert.
  4. app.Run(): Start de applicatie.

 

Functionaliteiten van Minimal API’s

Met Minimal API’s kun je belangrijke features van ASP.NET Core gebruiken, zoals o.a. dependency injection, parameter binding en authenticatie en autorisatie. Door deze functionaliteiten kunnen ze zeker gebruikt worden binnen productie omgevingen. Hieronder geven we wat voorbeelden van het gebruik van een aantal features binnen Minimal API’s.

 

Dependency Injection

Een van de meest gebruikte patterns is Depedency Injection. In Minimal API’s kun je redelijk eenvoudig Dependency Injection toepassen.

Een voorbeeld is injectie van databasecontext (Entity Framework Core), zie onderstaand voorbeeld. Je kunt AppDbContext als service registreren. Vervolgens kun je in het endpoint AppDbContext direct injecteren en gebruiken om gegevens uit de database op te halen, zie onderstaand voorbeeld.

Parameter binding

Met Parameter binding kun je inkomende HTTP-requests koppelen aan method parameters. Hierdoor kunnen requests op een gestructureerde manier worden verwerkt. Je kunt bijvoorbeeld queryparameters automatisch binden door ze als parameters toe te voegen:

De queryparameter wordt automatisch ingevuld vanuit de URL (/search?query=API).Wanneer er geen queryparameter is opgegeven, wordt een standaardbericht teruggegeven.

 

Authenticatie en Autorisatie

Minimal APIs ondersteunen authenticatie via de ingebouwde ASP.NET Core Identity en JSON Web Token.

Hieronder wordt een voorbeeld weergegeven hoe toegang wordt beperkt tot geauthentiseerde gebruikers:

Conclusie

Minimal APIs in C# bieden een eenvoudige en efficiënte manier om API's te bouwen met minder code en overhead. Ze zijn ideaal voor kleine services, microservices en serverless toepassingen. Door gebruik te maken van bijvoorbeeld dependency injection en authenticatie kun je krachtige en schaalbare API's ontwikkelen.

Wil je een lichtgewicht API met hoge prestaties? Dan is Minimal API de perfecte oplossing!

 

Geschreven door: Aboubakr Majait en Sander van der Bom