207 votes

Quelles méthodes HTTP à la hauteur de quelles méthodes CRUD ?

Dans la programmation de style reposante, nous devons utiliser les méthodes HTTP comme nos blocs de construction. Je suis un peu confus, mais quelles méthodes correspondent aux méthodes CRUD classiques. GET/lecture et suppression/suppression sont assez évidents.

Cependant, quelle est la différence entre mettre/POST ? Ils correspondent à un à un avec la création et la mise à jour ?

293voto

Paul Morgan Points 6058
<pre><code></code><p>PUT pouvez mapper à la création et de mise à jour dépend de l’existence de l’URI utilisé avec l’option PUT.</p><p>POST des cartes à créer.</p><p>Correction : Les POST peut également mapper à mise à jour même si il est généralement utilisé pour créer le. POSTE peut également être une mise à jour partielle donc il ne faut pas le projet PATCH méthode.</p></pre>

49voto

Donal Fellows Points 56559

La clé est de savoir si vous êtes en train de faire un idempotent un changement ou pas. C'est, si les mesures à prendre concernant le message deux fois en résulte "de la même" chose être là, comme si elle était seulement fait une fois, vous avez un idempotent changer et qu'il doit être mappé à METTRE. Si non, elle correspond à la POSTE. Si vous ne jamais permettre au client de synthétiser les Url, est assez proche de la mise à Jour et après peut gérer de Créer très bien, mais ce n'est certainement pas la seule façon de le faire; si le client sait qu'il veut créer /foo/abc et qui sait ce contenu à y mettre, il fonctionne très bien comme un PUT.

La description canonique d'un POST, c'est quand vous avez commis à l'achat de quelque chose: c'est une action qui personne ne veut répéter sans le savoir. Par contraste, réglage de l'adresse d'expédition de la commande à l'avance peut être fait avec MIS à l'amende juste: il n'a pas d'importance si l'on vous dit d'envoyer à l' 6 Anywhere Dr, Nowhereville , une fois, deux fois ou cent fois: c'est toujours la même adresse. Est-ce à dire que c'est une mise à jour? Pourrait être... tout dépend de comment vous voulez écrire le back-end. (À noter que les résultats pourraient ne pas être identiques: vous pouvez les signaler à l'utilisateur lors de leur dernière n'a MIS qu'une partie de la représentation de la ressource, ce qui permettrait de s'assurer que répété ne Met pas en cause un résultat identique, mais le résultat serait toujours le "même" dans un sens fonctionnel.)

32voto

ex0b1t Points 379

Je cherchais la même réponse, voici ce que dit IBM. IBM Link

 POST            Creates a new resource.
GET             Retrieves a resource.
PUT             Updates an existing resource.
DELETE          Deletes a resource.
 

9voto

pleshy Points 334

Il y a une bonne conversation vidéo sur YouTube par stormpath avec en fait l'explication, l'URL doit passer à la partie correcte de la vidéo:

vidéo sur Youtube

Aussi, il vaut la peine de regarder plus d'une heure de conversation, mais très intéressant si vous songez à investir du temps dans la construction d'un api REST.

3voto

AJ. Points 12912

De manière générale, c'est le modèle que j'utilise:

  • HTTP GET - SELECT / Demande
  • HTTP PUT - MISE À JOUR
  • HTTP POST - INSERT / Créer
  • HTTP DELETE - DELETE

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