Neu in .NET 7.0 [14]: Stilauswahl für neue WebAPI-Projekte

Wer WebAPI-Projekte mit ASP.NET Core erstellt, hat die Wahl zwischen dem in .NET 6.0 eingeführten Minimal-API-Stil und dem ursprünglichen API-Stil.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen

(Bild: Shutterstock)

Von
  • Dr. Holger Schwichtenberg

Neben der im vorherigen Teil der Serie erwähnten Bevormundung der Entwickler und Entwicklerinnen hinsichtlich des Startcodes machte .NET 6.0 eine weitere Vorgabe, die nicht allen gefiel: Alle neuen WebAPI-Projekte mit ASP.NET Core verwendeten den in .NET 6.0 neuen API-Stil "Minimal APIs" ohne Controller-Klassen.

Der Dotnet-Doktor – Holger Schwichtenberg

Dr. Holger Schwichtenberg ist Chief Technology Expert bei MAXIMAGO, die Innovations- und Experience-getriebener Softwareentwicklung, u.a. in hochkritischen sicherheitstechnischen Bereichen, anbietet. Zudem ist er Leiter des Expertennetzwerks www.IT-Visions.de, das mit 38 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratung und Schulung bei der Entwicklung sowie dem Betrieb von Software unterstützt.

In .NET 7.0 lässt Microsoft jetzt wieder die Wahl. An der Kommandozeile entsteht bei

dotnet new webapi

standardmäßig im neuen Projekt wieder ein Dateisystemordner /Controllers mit einer Controller-Klasse

Der neue Standard für WebAPI-Projekte ist wieder der alte Stil (Abb. 1).

Die Minimal-APIs gibt es nur noch, wenn man explizit den Parameter --use-minimal-apis hinzugibt:

dotnet new webapi --use-minimal-apis

In Visual Studio heißt die Option andersherum: "Use Controllers". Sie ist standardmäßig aber aktiv.

in Visual Studio muss man für die Minimal-APIs das Häkchen bei "Use Controllers" entfernen (Abb. 2).

Abbildung 3 zeigt zwei WebAPI-Projekte:

  • Links ist eine Minimal-API, aber mit Startklasse statt Top-Level-Statements zu sehen. Ein Verzicht auf class Program und Main() wäre möglich, indem man "Do not use top-level statements" deaktiviert.
  • Rechts findet sich der klassische Controller-Stil mit Trennung zwischen Startklasse und Controller-Klasse.

Minimal-API im Vergleich zum Controller-Stil – jeweils mit class Program und Main (Abb. 3)

Nun sind beide Stile noch mit der Option "Do not use top-level statements" kombinierbar. Wenn man "Do not use top-level statements" ausschaltet, erhält man keine Startklasse Program und keine Statische Main()-Methode mehr (siehe Abbildung 4). Insgesamt gibt es also nun vier Vorlagen für ASP.NET Core-basierte WebAPIs:

  • Controller-Stil mit Startklasse,
  • Controller-Stil mit Top-Level-Statements,
  • Minimal-API mit Startklasse
  • Minimal-API mit Top-Level-Statements.

Minimal-API im Vergleich zum Controller-Stil – jeweils mit Top-Level-Statements (Abb. 4)

(rme)