Estoy diseñando una API RESTful y me enfrenté al problema del título, reformulado para mayor claridad:
¿Debo fallar rápidamente si un cliente envía un parámetro no reconocido? Por ejemplo,
http://example.com/api/foo?bar=true&paula=bean
En lo anterior, bares un parámetro válido pero paulano está especificado por la API. Debería
- Avisar al cliente del error
- Fallar rapido
- Ignoralo
Si le advierto al cliente, solo puedo emitir una advertencia para el primer parámetro, ya que podrían estar enviando un número casi infinito de ellos, y el servidor presumiblemente tiene mejores cosas que hacer. De manera similar, cuando falla, solo especificaría el primer parámetro inválido como el problema.
Prefiero el fracaso en lugar de emitir una advertencia para obligar al programador a tomar medidas, ya que de lo contrario podrían ignorar el problema y seguir desperdiciando recursos, o terminar cargando a sí mismos sin darse cuenta. No hacer nada es aún peor en ese sentido.
¿Mis argumentos tienen sentido? ¿Existe una práctica aceptada en tales cosas?
api/v1etc. se encargaría de eso, pero aún no permite actualizaciones incrementales. +1