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

BASTA! Hybrid 2020 - ASP.NET Core API Versionierung aus der Praxis

BASTA! Hybrid 2020 - ASP.NET Core API Versionierung aus der Praxis

Slides for my Talk at BASTA! Fall 2020

Sebastian Gingter

September 23, 2020
Tweet

More Decks by Sebastian Gingter

Other Decks in Technology

Transcript

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

    mit • Breaking changes können nicht ausgeschlossen werden direkt aus der Praxis • Bei (öffentlichen) APIs, deren Clients nicht unter eigener Kontrolle sind
  2. 7 • 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] direkt aus der Praxis
  3. 14 • 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 direkt aus der Praxis
  4. 15 • 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 direkt aus der Praxis
  5. 16 • 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 direkt aus der Praxis
  6. 22 • Konfigurieren von API Versioning • Verwenden von HTTP

    Headern zur Versionsauswahl • Verwenden von URL Pfad zur Versionsauswahl • API Versionen als veraltet markieren direkt aus der Praxis
  7. 27 • Einbinden in existierendes Projekt • Endpunkte von Versionierung

    ausnehmen • Custom Header Versioning • Angeforderte Version im Code abfragen direkt aus der Praxis
  8. 33 • 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 direkt aus der Praxis