Strategia di versioning dell'API REST interno

2

Stiamo sviluppando API interne per l'integrazione della logica lato server (back-end) con frontend (web, mobile, ecc.). Abbiamo uno stack java nel nostro backend e il front end è codificato per reagire e reagire nativo. Poiché entrambi sono sviluppati dalla nostra organizzazione, come fornitori di API abbiamo il controllo completo sui consumatori di API. Qualsiasi cambiamento nell'API potrebbe essere sincronizzato con la modifica dei client API.

Esistono scenari / casi d'uso in cui è necessario pensare alle versioni di API interne / private? Abbiamo bisogno di pensare a una strategia di versioning?

    
posta Andy Dufresne 08.03.2018 - 05:57
fonte

2 risposte

3

Dovresti avere una strategia di versioning perché è la chiave per un'evoluzione indipendente, ma dovrebbe essere legata a Content-Type, non a URL o altro.

Anche in un ambiente chiuso, dovresti comunque cercare di rendere tutti i componenti di un sistema indipendentemente evolutivi (isolati, modularizzati), in particolare un sistema distribuito come quello basato su client / server. Ciò consente sia a team diversi di lavorare su ciascuno al proprio ritmo, sia le diverse cadenze di rilascio.

Perché non negli URL?

Gli URI identificano cose astratte che non possono essere versionate, come un utente "Andy" o una fattura. Una rappresentazione di quella cosa avrà una serializzazione particolare, che può essere versionata, application/andys-api-v1+json .

La tua API (come qualsiasi altro sito web) è definita da tre elementi. Queste sono le sole cose che devi documentare se la tua API è RESTful:

  • L'URL di root
  • Tipo / i di contenuto delle rappresentazioni
  • le relazioni di collegamento tra gli URI

Se un client v1 ottiene un collegamento a /users/andy da una richiesta precedente, può inoltrarlo a un client v2, che può quindi effettuare una richiesta allo stesso URL per ottenere dati sulla stessa cosa, ma in una lingua (tipo di contenuto) può parlare, application/andys-api-v2+json .

I client v1 e v2 potrebbero essere parti diverse dello stesso programma, nel mezzo di un ciclo di sviluppo. La chiave è che i clienti continuano a lavorare per tutto.

    
risposta data 09.03.2018 - 14:52
fonte
0

Crea un file di testo chiamato 'resource.html' sul tuo file system quando vuoi che quella versione del file tu la ottenga per nome. Copia il file, cambia il suo contenuto e rinominalo 'resource1.html'. ora puoi ottenere entrambe le versioni per nome. Si suppone che il REST sia un meccanismo mediante il quale sfruttiamo i protocolli HTTP esistenti. Quindi, come si esegue la versione di una risorsa REST? Per nome (URL). Ottieni / server / versione / risorsa. Puoi inserire la versione ovunque desideri nell'URL, purché OGNI risorsa UNICA abbia un URL univoco.

    
risposta data 07.08.2018 - 01:15
fonte

Leggi altre domande sui tag