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.

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