Question

Quel est l'ensemble minimal de verbes HTTP qu'un serveur doit permettre à un service Web d'être classé comme RESTful?

Que se passe-t-il si mon hébergeur ne permet pas PUT et SUPPRIMER ?

Est-ce vraiment important, puis-je vivre heureux pour toujours avec OBTENIR et POST ? ? p>

Mise à jour: Merci pour vos réponses, La réponse de Roger était probablement meilleure en raison du lien avec l'interview de Bill Venners et Elliotte Rusty Harold. Je l’ai maintenant.

Était-ce utile?

La solution

Oui, vous pouvez vivre sans PUT et DELETE.

Cet article explique pourquoi: http://www.artima.com/lejava/articles/why_put_and_delete.html

Bien que cela puisse être une hérésie pour les vrais restafriens, dans le monde réel, vous faites ce que vous pouvez, avec ce que vous avez. Soyez aussi rationnel que possible et conforme à votre convention, mais vous pouvez certainement construire un bon système RESTful sans P & D.

rp

Autres conseils

Vous pouvez également utiliser X-Http-Verb-Override: DELETE inst. de HTTP DELETE. Ceci est également utile pour les clients Silverlight qui ne peuvent pas changer les verbes HTTP et ne supportent que GET et POST ...

Si vous utilisez simplement GET et POST, il reste RESTful. Votre service Web ne peut effectuer que des tâches qui ne nécessitent que GET ou POST, alors tout va bien.

REST permet de rompre la convention de protocole si les implémentations du protocole sont rompues (de sorte que les seules choses non standard que vous fassiez sont de contourner les parties cassées de la mise en oeuvre). Il est donc permis dans REST d’utiliser une autre méthode pour représenter des verbes généralement non pris en charge tels que DELETE ou PUT.

edit: voici une citation de Fielding, qui est celle qui a créé et défini REST:

  

Une API REST ne doit contenir aucun changement dans les protocoles de communication, à part remplir ou corriger les détails des bits sous-spécifiés des protocoles standard, tels que la méthode PATCH de HTTP ou le champ d’en-tête Link. Les solutions de contournement pour les implémentations défectueuses (telles que les navigateurs assez stupides pour croire que HTML définit le jeu de méthodes de HTTP) doivent être définies séparément, ou au moins dans des annexes, en espérant que la solution de contournement sera éventuellement obsolète. [Un échec implique que les interfaces de ressources soient spécifiques à un objet et non génériques.]

Les navigateurs Web actuels ne gèrent que GETS + POSTS. Dans Rails, par exemple, PUTS + DELETES sont "falsifiés". via des champs de formulaire cachés.

À moins que votre infrastructure ne contienne une solution de contournement pour "soutenir". PUTS + DELETES, ne vous inquiétez pas pour eux pour le moment.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow