Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Thinktecture Webinar Pragmatische API-Versionie...

Thinktecture Webinar Pragmatische API-Versionierung in ASP.NET Core

Slides für mein Webinar am 25.11.2020.

Avatar for Sebastian Gingter

Sebastian Gingter

November 24, 2020
Tweet

More Decks by Sebastian Gingter

Other Decks in Technology

Transcript

  1. 5 • Anforderungen ändern sich • APIs verändern sich zwangsläufig

    mit • Breaking changes können nicht ausgeschlossen werden in ASP.NET Core • Bei (öffentlichen) APIs, deren Clients nicht unter eigener Kontrolle sind
  2. 6 • Endpunkte • Entfernen von Endpunkten • Hinzufügen von

    neuen Pflichtparametern • Änderungen am Verhalten von Endpunkten • Datenmodell • Entfernen oder Umbenennen von vorher gelieferten Daten • Ändern von Datentypen • Hinzufügen neuer Pflichtdaten beim Empfang (entweder ganz neu oder vorher optional) • [Hinzufügen von neuen Daten beim Senden, für unflexible Clients] in ASP.NET Core
  3. 13 • Mittels externer Bibliothek • NuGet: Microsoft.AspNetCore.Mvc.Versioning • GitHub:

    https://github.com/microsoft/aspnet-api-versioning • Hinweis • Paket stammt nicht vom ASP.NET Core Team • Nicht im aspnet/AspNetCore Repository • Kein offizielles von Microsoft supportetes Paket • Gewartet von einem Microsoft Entwickler aus dem Bing-Team in ASP.NET Core
  4. 14 • Version • [Version Group.]<Major>.<Minor>[-Status] • <Version Group>[.<Major>[.Minor]][-Status] •

    Version Group • YYYY-MM-DD • Beispiele: • 1.0 • 2.1-RC1 • 2019-11-07.1 • 2019-11-07.2.1-Alpha in ASP.NET Core
  5. 15 • Version kann festgelegt warden • Auf einem Controller

    • Auf einer einzelnen Action • Ermöglicht • Einen Controller pro Version • Mehrere Action-Versionen auf einem Controller • Beliebig mischbar • Angefragte, aber nicht gefundene Version liefert einen 400 Bad Request • Default-Version kann optional konfiguriert werden • Es gibt viele weitere Konfigurations- und Anpassungsmöglichkeiten in ASP.NET Core
  6. 21 • Konfigurieren von API Versioning • Verwenden von HTTP

    Headern zur Versionsauswahl • Verwenden von URL Pfad zur Versionsauswahl • API Versionen als veraltet markieren in ASP.NET Core
  7. 26 • Einbinden in existierendes Projekt • Endpunkte von Versionierung

    ausnehmen • Custom Header Versioning • Angeforderte Version im Code abfragen in ASP.NET Core
  8. 32 • API-Versionierung ist nicht immer notwendig • Es gibt

    verschiedene Arten der Versionsauswahl • There’s a NuGet for that • Allerdings nicht offiziell vom ASP.NET Core Team • Verwendung benötigt wenig Code • Aber etwas Gehirnschmalz bei der Planung in ASP.NET Core