Estou projetando uma API RESTful e enfrentando o problema do título, atualizado para maior clareza:
Devo falhar rapidamente se um cliente enviar um parâmetro não reconhecido? Por exemplo,
http://example.com/api/foo?bar=true&paula=bean
Acima, bar
é um parâmetro válido, mas paula
não é especificado pela API. Eu devo
- Avise o cliente do erro
- Falhar rápido
- Ignore isto
Se eu avisar o cliente, só posso emitir um aviso para o primeiro parâmetro, pois eles podem estar enviando um número quase infinito deles e o servidor provavelmente tem coisas melhores a fazer. Da mesma forma, ao falhar, especificaria apenas o primeiro parâmetro inválido como o problema.
Prefiro falhar do que emitir um aviso para forçar o programador a tomar uma ação, pois, caso contrário, eles podem ignorar o problema e continuar desperdiçando recursos, ou acabam se culpar inadvertidamente. Não fazer nada é ainda pior a esse respeito.
Meus argumentos fazem sentido? Existe uma prática aceita em tais coisas?
api/v1
etc. cuidaria disso, mas ainda não permite atualizações incrementais. +1