Versioning API, dove indirizzare API non verificate

3

Vedo sempre la discussione quando c'è una versione API nell'URL dove indirizzare quella senza versione.

Voglio dire guardare questi tre URL.

link
link
link

In ogni post del blog che ho letto, stanno parlando di dove indicare il primo URL. Prima di tutto disabiliterei quell'URL, quale vantaggio può trarne? E anche se ho quell'URL, ovviamente lo indicherò alla versione più vecchia supportata e, si spera, ritirarla con quella! (Perché solo la ragione per cui ho quell'URL sarebbe che prima della pubblicazione avrei dimenticato che potrebbero esserci versioni)

Non è solo che non riesco a vedere il punto nel legarlo alla più recente API ma è come la cosa peggiore da fare, anche stupida!

Che cosa pensi di questo? Perché anche le persone scrivono su questo perdonarmi URL stupido?

    
posta EralpB 11.01.2017 - 11:17
fonte

1 risposta

5

Alcune persone usano il primo formato di URL per la prima versione della loro API, perché non hanno pensato a come gestire il controllo delle versioni in quel momento (o ritardato tale decisione fino a quando non hanno bisogno di una seconda versione). Altri lo usano perché non usano l'URL per determinare la versione da utilizzare, o consentono modi alternativi per dire al server quale versione è in uso (intestazioni, ecc.).

In definitiva, la cosa più importante quando pubblichi un'API è assicurarti che sia coerente, logico e ben documentato.

Sono d'accordo con te sul fatto che, quando fornisci gli URL in cui è visibile l'identificatore della versione dell'API, avere un URL senza versione ha poco o nessun valore (eccetto se è il modo in cui deve essere usata la versione 1 dell'API), e può essere fonte di confusione per i consumatori API. Sarebbe bello se potessi collegare ad alcuni dei post del blog che hai letto che sostengono il suo utilizzo, perché personalmente non li ho mai incontrati.

Se il primo URL deve essere fornito, con un meccanismo di rilevamento della versione appropriato (uso di un'intestazione dedicata come X-API-Version o l'uso di un tipo MIME dedicato), allora gli altri due URL probabilmente non sono migliori esistere.

(Va notato che l'utilizzo di X-API-Version non risolve ma sposta semplicemente il problema, perché se quell'intestazione non è impostata, come dovrebbe comportarsi la tua API? Se dovrebbe comportarsi come v1 , o restituire un errore con un messaggio che dice al consumatore dell'API di fornire la versione, lo stesso può probabilmente dirsi del primo formato di URL.)

Interessante articolo sull'argomento: Il versioning delle API è sbagliato, motivo per cui I ho deciso di farlo in 3 modi sbagliati diversi (Troy Hunt)

    
risposta data 11.01.2017 - 14:19
fonte

Leggi altre domande sui tag