Save 37% off PRO during our Black Friday Sale! »

Thinktecture Webinar Pragmatische API-Versionierung in ASP.NET Core

Thinktecture Webinar Pragmatische API-Versionierung in ASP.NET Core

Slides für mein Webinar am 25.11.2020.

Ebeb5d8fd081058ba8df73d378bf83d7?s=128

Sebastian P.R. Gingter

November 24, 2020
Tweet

Transcript

  1. None
  2. 2 in ASP.NET Core ▪ ▪ ▪ ▪ ▪ ▪

    ▪ ▪ ▪ Twitter:
  3. 3 ▪ ▪ ▪ ▪ ▪ in ASP.NET Core

  4. 4 in ASP.NET Core

  5. 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
  6. 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
  7. 7 in ASP.NET Core

  8. 8 in ASP.NET Core

  9. 9 in ASP.NET Core

  10. 10 in ASP.NET Core

  11. 11 in ASP.NET Core

  12. 12 in ASP.NET Core

  13. 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
  14. 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
  15. 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
  16. 16 ▪ ▪ ▪ ▪ ▪ in ASP.NET Core

  17. 17 ▪ ▪ ▪ in ASP.NET Core

  18. 18 in ASP.NET Core

  19. 19 in ASP.NET Core

  20. 20 in ASP.NET Core

  21. 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
  22. 22 in ASP.NET Core

  23. 23 in ASP.NET Core

  24. 24 in ASP.NET Core

  25. 25 in ASP.NET Core

  26. 26 • Einbinden in existierendes Projekt • Endpunkte von Versionierung

    ausnehmen • Custom Header Versioning • Angeforderte Version im Code abfragen in ASP.NET Core
  27. 27 Demo Einbinden in existierendes Projekt in ASP.NET Core

  28. 28 Demo Endpunkte ausnehmen in ASP.NET Core

  29. 29 Demo Custom Header Versioning in ASP.NET Core

  30. 30 Demo Angeforderte Version ermitteln in ASP.NET Core

  31. 31 in ASP.NET Core

  32. 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
  33. 33 in ASP.NET Core https://www.thinktecture.com/de/cheatsheet/aspnetcore/

  34. None