Quel est l'argument pour les noms singuliers dans la dénomination des ressources de l'API RESTful?


12

Je comprends que lorsque vous nommez des URI RESTful, il est communément admis d'utiliser des pluriels pour représenter des collections de ressources. Je suis curieux de savoir pourquoi utiliser des noms singuliers à la place.


peut-être parce que tout n'est pas une collection?
jwenting

N'est-ce pas là qu'une ressource singleton entrerait en jeu?
charness

Réponses:


12

Certaines ressources ne contiennent qu'un seul élément. De bons exemples seraient tout ce pour quoi vous n'avez pas besoin d'un ID pour savoir quelles données rendre. Par exemple, la ressource Login est très courante. Vous n'avez (de la vue des utilisateurs et des navigateurs) qu'une seule connexion. Vous pouvez le créer, vous pouvez le détruire mais vous n'aurez pas d'action d'index avec plusieurs connexions à choisir.

Des exemples similaires seraient des pages principalement statiques comme des informations sur la société, des empreintes, des formulaires de contact et des choses similaires qui affichent uniquement un seul élément ou autorisent une seule action de création.

Cela pourrait être un sujet de discussion si l'utilisation de noms singuliers ajoute vraiment beaucoup à la lisibilité du code.


5

Car:

  1. Les règles anglaises plurielles comme "cherries" ne sont pas la meilleure chose à penser lors du développement de l'API, en particulier lorsque l'anglais n'est pas votre langue maternelle.
  2. Parfois, vous souhaitez générer un point de terminaison à partir du modèle, qui est généralement singulier. Il ne joue pas bien avec ce qui précède.
  3. L'argument "généralement vous commencez à interroger par un Get pour afficher une liste" ne fait référence à aucun cas d'utilisation réel. Et vous finirez par interroger des éléments uniques autant et même plus qu'une liste d'éléments.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.