40 votes

POSTES DE REPOS, postez-vous des objets au singulier ou au pluriel Uri?

Lequel de ces URI conviendrait mieux pour recevoir des POST (ajout de produit (s))? Existe-t-il des meilleures pratiques disponibles ou s'agit-il simplement d'une préférence personnelle?

/ produit / (singulier)

ou

/ produits / (pluriel)

Actuellement, nous utilisons /products/?query=blah pour la recherche et /product/{productId}/ pour les GET PUTs et DELETE d'un seul produit.

28voto

Rob Hruska Points 39151

Car le POST est un "annexer" fonctionnement, il peut être plus Englishy POSTER /products, comme vous pouvez vous en être l'ajout d'un nouveau produit à la liste existante des produits.

Tant que vous avez standardisés sur quelque chose à l'intérieur de votre API, je pense que c'est assez bon.

Depuis les Api REST devrait être hypertexte, piloté par l'URI est relativement sans importance de toute façon. Les Clients doivent être en tirant les Uri de retour des documents et de l'aide à ceux dans les demandes ultérieures; en général, les applications et les gens ne vont pas besoin de deviner ou mal interpréter les Uri, depuis l'application sera explicitement instruire des clients quelles sont les ressources et les Uri sont disponibles.

11voto

Greg Beech Points 55270

En règle générale, vous utilisez POST pour créer une ressource lorsque vous ne connaissez pas son identifiant à l'avance, et PUT lorsque vous le connaissez. Vous pouvez donc POST to / products, ou PUT to / products / {new-id}.

Avec les deux, vous retournerez 201 Created et le POST renverrez en outre un en-tête Location contenant l'URL de la ressource nouvellement créée (en supposant que celle-ci a été créée avec succès).

4voto

Bryan Kyle Points 5931

Le repos de la conception, il ya quelques modèles autour de la création de ressources nouvelles. Le modèle que vous choisissez dépend en grande partie qui est responsable du choix de l'URL de la ressource nouvellement créée.

Si le client est responsable du choix de l'URL, le client doit METTRE de l'URL de la ressource. En revanche, si le serveur est responsable de l'URL de la ressource, le client devrait POSTER une "usine" de la ressource. Généralement, l'usine de ressources est le parent des ressources de la ressource a été créé et est habituellement une collection qui est la marque du pluriel.

Donc, dans votre cas, je vous conseille d'utiliser l' /products

3voto

S.Lott Points 207588

Vous POST ou OBTENEZ une seule chose: un seul produit.

Parfois, vous obtenez avec aucun produit spécifique (ou avec des critères de requête). Mais vous le dites toujours au singulier.

Vous travaillez rarement sous des formes plurielles de noms. Si vous avez une collection (un catalogue de produits), c'est un catalogue.

1voto

Marcus Points 11412

Je voudrais seulement poster au singulier /product . Il est trop facile de mélanger les deux URL et de créer des confusions ou de faire des erreurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X