Sto progettando un'API RESTful e ho affrontato il problema del titolo, riformulato per chiarezza:
Devo fallire velocemente se un client invia un parametro non riconosciuto? Ad esempio,
http://example.com/api/foo?bar=true&paula=bean
In quanto sopra, bar
è un parametro valido ma paula
non è specificato dall'API. Dovrei
- Avvisa il client dell'errore
- Errore veloce
- Ignoralo
Se avviso il client, posso solo inviare un avviso per il primo parametro, dal momento che potrebbero inviare un numero quasi infinito di essi e il server presumibilmente ha cose migliori da fare. Allo stesso modo, quando fallisce, si specifica solo il primo parametro non valido come problema.
Preferisco il fallimento rispetto all'emissione di un avvertimento per costringere il programmatore ad agire, in quanto altrimenti potrebbero ignorare il problema e continuare a sprecare risorse, o finire per incappare inavvertitamente su se stessi. Non fare nulla è ancora peggio sotto questo aspetto.
Le mie argomentazioni hanno senso? C'è una pratica accettata su queste cose?