2016-06-29 13 views
0

Ich ging durch alle gute Diskussion über api Versionierung here. Wir haben uns entschieden, die Versionsnummer in den URI zu schreiben, dazu müssen wir nun Clients, die Ressourcen ohne API-Version in der URI anfordern, standardmäßig auf die neueste Version unterstützen. Beispiel:Rest Endpoint Versionierung und uri Aliasing

http://base_uri/api/customers/1234 (with out api version) 
http://base_uri/api/v3.0/customers/1234 (default to current version) 

Schritt 1: oben zu adressieren: Ich von URL-Rewrite denke es mit (url rewrite, jboss valve) raten Sie bitte, ob irgendwelche bessere Ansätze sind.

Schritt 2: Jetzt muss ich alle @Path Annotationen mit meiner Versionsnummer "v1" voranstellen.

@Path("/foo/bar") will now change to @Path("v1/foo/bar"). 

Ich dachte an

ex: @Path("{version}/foo/bar") 

einen Platzhalter anstelle der Version mit und die Versionsnamen aus einer Konfigurationsdatei lesen, während Rest-einfache Möglichkeiten an, scannt und Registrierung. Wenn wir also in Zukunft zu einer neuen Version wechseln, müssen wir uns nur an einer Stelle ändern.

Ich suche die besten Ansätze in Schritt 1 & Schritt2. jede Hilfe wird sehr geschätzt.

Ich bin mit Rast-easy, JAX-RS-2.0, Jboss

Antwort

0

würde ich Schritt 2, deuten darauf hin, da URL-Rewriting ein bisschen kompliziert für diese Anforderung sein kann. Es fügt auch eine weitere zu wartende Komponente hinzu. Für Schritt 2 müssen Sie beachten, dass Anmerkungen nur Konstanten enthalten, da sie zur Kompilierungszeit ausgewertet werden. Deklarieren Sie eine Konstante und verwenden Sie sie in der @Path-Annotation erneut.

public static final Zeichenfolge VERSION_1 = "1.0"; // In der Konstantenklasse.

Dann verwenden Sie dies in allen Pfadzuordnungen oder Anmerkungen, die Sie haben.

@Path ("/" + Constants.VERSION_1 + "/ foo/bar")