Frühlings-Boot-Micro API Versioning Implementierung

user3495691:

Es besteht ein Bedarf, den bestehenden Vertrag (Request / Response-Nutzlasten), ein Frühlings-Boot-Micro zu ändern, die Änderungen im Wesentlichen zu brechen (nicht rückwärtskompatibel). Und es ist wichtig, sowohl die Versionen des Vertrages bis einige Zeit zu unterstützen - bis die Zeit, um alle Kunden-Upgrades sich auf die neuere Version.

Um dies zu erreichen, wurde entschieden, es URL Versionierung Strategie zu verwenden (wie / v1 / {} Ressource und / v2 / {} Ressource).

Nun ist die Frage , was ist der beste Weg , dies in Code zu implementieren? Im Folgenden sind die beiden Lösungsvorschläge

  1. Verzweigen sich die Version eines ( / v1 ) Code und halten sie separat bis diese Version unterstützt wird. Dies bedeutet im Wesentlichen , dass der Zweig vom Master Schneiden und build / Bereitstellen von diesem Zweig und aufrechtzuerhalten zwei Instanzen desselben Dienstes jeden Stütz v1 und v2 Versionen sind.

  2. In der gleichen Master Zweig, einzuführen ein separates Paket (wie service.api.v2.request ) und setzen alle die api Payload Anfrage- / Antwort - Klassen in dort und die Einführung einer neuen Endpunkt - Controller - Unterstützung ( / v2 ). Dieser Ansatz ermöglicht es einzelne Instanz zu unterstützen sowohl die Versionen.

Welches der oben genannten ist ein besserer Ansatz? Oder gibt es noch andere Standard / bessere Alternativen dies zu erreichen? Does Frühlings-Boot bietet jede aus der Box Unterstützung für solche Bedürfnisse?

Chris:

Es hängt davon ab, wie viel Gemeinsamkeit dort hinter dem Controller ist. Wenn die Versionen signifikant verschieden den ganzen Weg bis zum hinteren Ende sind dann vielleicht verschiedene Zweige sind leichter zu arbeiten mit, aber wenn die Hauptunterschiede in den Controller-Pfade sind und die Eingangs- und Ausgangsobjekten in diesen Verfahren beteiligt sind, dann zwei Zweige wird wahrscheinlich führen, um den Schmerz von Änderungen sowohl der Anwendung, und so jedes Mal zu tun zu erinnern - es ist die Art von Situation ist, wo früher oder später ein wichtiges Update verpaßt wird.

Es ist alles ein Gleichgewicht, und Sie müssen die Wartungskosten für die Ansätze in Ihrem Fall in Bezug auf die Zeit und Mühe, und auch das Risiko von Fehlern, sowie die Kosten für die getrennte Einsätze abzuwägen.

Ich denke du magst

Origin http://10.200.1.11:23101/article/api/json?id=400961&siteId=1
Empfohlen
Rangfolge