Ho effettuato la prima ricerca in StackOverflow & Non sono riuscito a trovare alcuna risposta relativa alla mia domanda. Tutto quello che posso trovare sono domande relative al progetto uri REST.Il modo migliore per gestire la versione dell'URI dell'API REST JAX-RS
La mia domanda sul lato back-end. Supponiamo di avere due differenti versioni di REST uri di
http://api.abc.com/rest/v1/products
http://api.abc.com/rest/v2/products
Qual è l'approccio migliore per seguire sul lato backend (codice lato server) per il corretto instradamento, gestibilità & riutilizzo dell'esistente le classi attraverso questi due set di API si basano sulla versione?
Ho pensato ad un approccio per definire le classi di risorse con diverse annotazioni @Path per es. avere un pacchetto per v1 & v2 separatamente & in classe ProductsResource di quel pacchetto, definire
package com.abc.api.rest.v1.products;
@Path("/rest/v1/products")
public class ProductsResource {...}
package com.abc.api.rest.v2.products;
@Path("/rest/v2/products")
public class ProductsResource {...}
& quindi hanno la logica implementazione basata sulle versioni. I problemi con questo approccio sono quando cambiamo solo una particolare risorsa API dal set di API, dobbiamo copiare anche altre classi nel pacchetto v2. Possiamo evitarlo?
Come scrivere un'annotazione personalizzata dire @Version & hanno valori delle versioni che supporta? Ora se è v1 o v2, entrambe le richieste andranno alla stessa classe di risorse.
Dire per es.
package com.abc.api.rest.products;
@Path("/rest/{version: [0-9]+}/products")
@Version(1,2)
public class ProductsResource {...}
UPDATE:
C'era un'API delle versioni suggerimento di Jarrod per gestire la versione nelle intestazioni. Anche questo è un modo per farlo, sto cercando le migliori pratiche da utilizzare quando stiamo seguendo il controllo delle versioni degli URI
le best practice è ** non ** inserire le informazioni sulla versione api nell'URL –
Questa è stata una grande domanda, sono molto sorpreso della mancanza di risposte. Ci sono centinaia di persone che discutono a favore e contro la versione di URI, ma tutti i principali siti lo fanno perché è esplicito e facile da usare per i client. @Deepesh M - quale soluzione hai usato alla fine? – arcseldon
solo perché molte persone fanno le cose in modo non corretto non ne fanno una buona idea! significa solo che molte persone lo stanno facendo in modo errato. –