Question

Quel est l'ensemble minimum de verbes HTTP qu'un serveur doit autoriser pour qu'un service Web soit classé comme RESTful ?

Que faire si mon hébergeur ne le permet pas METTRE et SUPPRIMER?

Est-ce vraiment important, puis-je vivre heureux pour toujours avec juste OBTENIR et POSTE ?


Mise à jour: Merci pour les réponses les amis, La réponse de Roger était probablement le meilleur en raison du lien vers l'interview de Bill Venners et Elliotte Rusty Harold.Je comprends maintenant.


Était-ce utile?

La solution

Oui, vous pouvez vivre sans PUT et DELETE.

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

Même si pour les vrais RESTafriens, cela peut être une hérésie, dans le monde réel, vous faites ce que vous pouvez, avec ce que vous avez.Soyez aussi rationnel que possible et aussi cohérent que possible avec votre propre convention, mais vous pouvez certainement construire un bon système RESTful sans P et D.

rp

Autres conseils

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

Si vous utilisez simplement GET et POST, c'est toujours RESTful.Votre service Web ne peut faire que des choses qui nécessitent uniquement GET ou POST, donc c'est très bien.

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

modifier:Voici une citation de Fielding, qui est celui qui a créé et défini REST :

Une API REST ne doit contenir aucune modification des protocoles de communication, hormis le remplissage ou la correction des détails de bits sous-spécifiés de 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 (comme les navigateurs assez stupides pour croire que HTML définit l'ensemble de méthodes HTTP) doivent être définies séparément, ou au moins dans des annexes, en espérant que la solution de contournement finira par devenir obsolète.[L'échec ici implique que les interfaces de ressources sont 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 "truqués" via des champs de formulaire cachés.

À moins que votre framework ne dispose d'une solution de contournement pour "prendre en charge" PUTS + DELETES, ne vous en souciez pas pour l'instant.

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