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)