2017-02-10 4 views
0

Brauchen Sie noch einen Weg \ Design zu entwickeln mehrere Java-Version Federauflage api zum Beispiel zu entwickeln gleichzeitig. Auch wenn in einer bestimmten Version Bug Fix \ Enhancement benötigt wird, haben die Änderungen keinen Einfluss auf andere Versionen mit Null oder minimaler Codeverdopplung.Eine Art und Weise Design mehr Java-Version Federauflage api

+0

Warum benötigen Sie mehrere Versionen? In der Regel können Sie viele Änderungen an einer API vornehmen und die Abwärtskompatibilität beibehalten. Sie sehen oft die API-Version in der URL,/v1/exampleapi/sayhello, dann verwenden Sie einen Adapter, um ältere Nachrichten auf die neueste Version zu aktualisieren, um Code-Doppelarbeit zu vermeiden. Eine andere Möglichkeit, die ich gesehen habe, ist, einen Endpunkt zu haben und einen Versionskopf zu enthalten. –

+0

Wir haben mehrere Kunden zu unserer API. Nicht alle stimmen zu, um zu einer neuen Version zu wechseln. Ich möchte, dass wir zu jeder Zeit jede Version unterstützen können, ohne bestehende Funktionalität zu beeinträchtigen oder zu beeinträchtigen. Die Versionierung über Header oder URL ist in Ordnung, aber ich suche nach einer Lösung, die mir hilft, Code hinter den APIs mit minimaler Duplizierung zu verwalten. –

+0

Die meiste Zeit versuchen Sie, die älteren Nachrichten auf die neueste Version zu aktualisieren. Ich habe etwas Ähnliches mit einem internen Einstellungsprotokoll getan, das für jede Version und manchmal sogar in Hotfixes geändert wurde, so dass der Server in der Lage sein musste, mit mehr als 5 verschiedenen Client-Versionen zu sprechen. Der Trick besteht darin, einen einfachen Konverter zu haben, der nur auf die nächste Version upgraden kann. Wenn der Client sagt, er möchte Version 3 sprechen, konvertieren Sie Ihre Version 5 Nachricht auf 4, dann auf 3 und aktualisieren Sie von 3 auf 5, wenn Sie empfangen. Auf diese Weise erfordert das Hinzufügen einer zusätzlichen Version nur den Konverter von der vorherigen Version zur aktuellen Version. –

Antwort

1

Für API Versionierung gibt es 3 Möglichkeiten:

  1. API-Version in der URL Beispiel aussetzen:

    http://api.example.com/v1/Beispiele

    http://api.example.com/v2/Beispiele

  2. Verwenden von Ac cept-Header, Accept: application/json + v1

  3. Verwenden von benutzerdefinierten Header, X-Api-Version: 1

In Bezug auf den Code, können Sie die Routen/Header verwenden, um die entsprechenden auszuführen Funktionalität.

Ich meine in bestimmten Punkt Ihrer Anwendung (Middle-Ware) oder vor Aktionen können Sie den Versionswert von der URL oder aus der Kopfzeile und basierend auf dem Wert, den Sie die Funktionalität nennen.

Verwandte Themen