API versioning
Luca Bianchi <[email protected]> Sat, 22 Feb 2014 13:16:25 +0100
| Newsgroups | gmane.comp.cms.cold-fusion.devel.italian |
|---|---|
| Message-ID | <[email protected]> |
Ciao lista, Mi trovo a dover versionare delle API, in modo da poter supportare client c= he abbiano un tempo di migrazione abbastanza lento: rilascio delle API in b= eta, rilascio pubblico, deprecation delle vecchie, ritiro delle vecchie. Ho definito una policy di questo tipo per i rilasci: - major release: retrocompatibilit=C3=A1 non garantita, le signature posson= o cambiare cos=C3=AC come le interfacce - minor release: le interfacce non cambiano, possono solo essere aggiunte n= uove API, il comportamento interno pu=C3=B2 cambiare di molto (es. uso un'a= lgoritmo pi=C3=B9 preciso)=20 - refresh release: sono bug fix e small improvement, i client possono anche= ignorarle, nulla cambia Il tema per=C3=B2 =C3=A9 capire qual'=C3=A9 il modo migliore.=20 Che io sappia ci sono 3 possibilit=C3=A0: - url component es. http://www.mioservizio.com/rest/2/my/great/api In questo caso propenderei per mettere nella url component solo la major ve= rsion - header http: in questo caso diventa anche scomodo via il test manuale. Po= sso per=C3=B2 fissare il default all'ultima versione supportata, etc. - query string: questa =C3=A9 quella che mi piace meno=20 Cosa consigliate? Inviato da iPad ------------------------------------