Je conçois une API RESTful et confronté au problème de titre, reformulé pour plus de clarté:
Dois-je échouer rapidement si un client envoie un paramètre non reconnu? Par exemple,
http://example.com/api/foo?bar=true&paula=bean
Dans ce qui précède, bar
est un paramètre valide mais paula
n'est pas spécifié par l'API. Devrais-je
- Avertir le client de l'erreur
- Échec rapide
- Ignore ça
Si j'avertis le client, je ne peux émettre qu'un avertissement pour le premier paramètre, car il pourrait en envoyer un nombre presque infini, et le serveur a probablement de meilleures choses à faire. De même, en cas d'échec, il ne spécifierait que le premier paramètre non valide comme problème.
Je préfère l'échec à l'émission d'un avertissement pour forcer le programmeur à agir, car il pourrait sinon ignorer le problème et continuer à gaspiller des ressources, ou finir par se cultiver lui-même par inadvertance. Ne rien faire est encore pire à cet égard.
Mes arguments ont-ils un sens? Existe-t-il une pratique acceptée sur de telles choses?
api/v1
etc., s'en occuperait, mais cela ne permet toujours pas les mises à jour incrémentielles. +1