J'ai écrit un service web RESTful qui prend en charge les opérations CRUD standard et qui peut renvoyer un ensemble d'objets correspondant à certains critères (un verbe SEARCH), mais j'aimerais ajouter un verbe COUNT d'ordre supérieur, afin que les clients puissent compter les ressources correspondant aux critères de recherche sans avoir à les récupérer toutes.
Quelques options me viennent à l'esprit :
-
Ignorer la spécification HTTP et renvoyer le nombre d'objets dans le corps de la réponse d'une requête HEAD.
-
Dupliquer la logique du verbe SEARCH, mais en effectuant une requête HEAD au lieu d'une requête GET. Le serveur coderait alors le nombre d'objets dans un en-tête de réponse.
-
Définition d'une nouvelle méthode HTTP, COUNT, qui renvoie le nombre d'objets dans le corps de la réponse.
Je préférerais l'API de la première approche, mais je dois supprimer cette option parce qu'elle n'est pas conforme. La deuxième approche semble la plus correcte d'un point de vue sémantique, mais l'API n'est pas très pratique : les clients devront s'occuper des en-têtes de réponse, alors que la plupart du temps ils veulent pouvoir faire quelque chose de simple comme response.count
. Je penche donc pour la troisième approche, mais je suis préoccupé par les problèmes potentiels liés à la définition d'une nouvelle méthode HTTP.
Que feriez-vous ?