ASP.NET Core Minimal WebAPIs
Eintrag zuletzt aktualisiert am: 15.04.2026

Eine
ASP.NET Core Minimal WebAPI ist eine
HTTP-API, die ohne Controller-Klassen aufgebaut wird.
Die Endpunkte werden direkt in `Program.cs` oder in ausgelagerten
Methoden über `MapGet()`, `MapPost()`, `MapPut()` oder `MapDelete()` definiert. Microsoft beschreibt Minimal APIs als den empfohlenen Ansatz für neue, schnelle
HTTP-APIs in
ASP.NET Core, weil dafür weniger Code und weniger Konfiguration nötig sind.
Der Kern besteht aus zwei Bausteinen:
`WebApplicationBuilder` zum Konfigurieren der Anwendung und `WebApplication` zum Definieren und Starten der Endpunkte. Ein Endpunkt ist dabei meist nur eine Lambda-Funktion oder
Methodengruppe, die Requestdaten entgegennimmt und ein Ergebnis zurückgibt.
Beispielvar builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/hello", () => "Hallo Welt");
app.Run();
Der Vorteil ist die sehr geringe Einstiegshürde. Für kleine Services, Microservices, Prototypen oder schlanke Backend-APIs ist das oft ideal. Microsoft nennt Minimal APIs ausdrücklich passend für Anwendungen mit möglichst wenigen Dateien, Features und Abhängigkeiten. ([Microsoft Learn][3])
Auch komplexere Szenarien sind möglich. Parameter können automatisch aus Route, Querystring, Headern, Body oder per Dependency Injection gebunden werden. Dadurch lassen sich auch Datenbankkontexte, Logger, Konfigurationen oder eigene Dienste direkt als Parameter in einen Handler injizieren. Zudem unterstützt ASP.NET Core für Minimal APIs unter anderem OpenAPI, Filter, Fehlerbehandlung, Authentifizierung und Autorisierung.
Beispiel mit Route, DI und Typed Results:var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSingleton<PersonRepository>();
var app = builder.Build();
app.MapGet("/persons/{id}",
Results<Ok<Person>, NotFound> (int id, PersonRepository repo) =>
{
var person = repo.GetById(id);
if (person is null)
return TypedResults.NotFound();
return TypedResults.Ok(person);
});
app.Run();
public class PersonRepository
{
private readonly List<Person> data =
[
new(1, "Anna"),
new(2, "Bernd")
];
public Person? GetById(int id) => data.FirstOrDefault(p => p.Id == id);
}
public record Person(int Id, string Name);
Wesentliche Merkmale der ASP.NET Core Minimal WebAPIs- Kein Controller notwendig
- Routen werden direkt per Map...() definiert
- Weniger Boilerplate
- Sehr gut für kleine bis mittlere APIs
- Trotzdem volle ASP.NET-Core-Infrastruktur nutzbar wie DI, Middleware, Authentifizierung, Autorisierung und OpenAPI.