Sto progettando un'API RESTful e sto affrontando il problema del titolo, ribadito per chiarezza:
Devo fallire velocemente se un client invia un parametro non riconosciuto? Per esempio,
http://example.com/api/foo?bar=true&paula=bean
In quanto sopra, bar
è un parametro valido ma paula
non è specificato dall'API. Dovrei
- Avvertire il client dell'errore
- Fallire velocemente
- Ignoralo
Se avverto il client, posso solo emettere un avviso per il primo parametro, dal momento che potrebbero inviarne un numero quasi infinito e presumibilmente il server ha cose migliori da fare. Allo stesso modo, in caso di errore, specifica solo il primo parametro non valido come problema.
Preferisco il fallimento rispetto all'emissione di un avvertimento per costringere il programmatore ad agire, poiché altrimenti potrebbero ignorare il problema e continuare a sprecare risorse, o finire col cagionare il carico inavvertitamente. Non fare nulla è anche peggio sotto questo aspetto.
I miei argomenti hanno senso? Esiste una pratica accettata su tali cose?
api/v1
ecc. Potrebbe occuparsene, ma non consente comunque aggiornamenti incrementali. +1