Dernièrement, je me suis intéressé à me familiariser avec REST. J'ai essayé de lire l' entrée de wiki sur REST , mais cela ne m'a pas aidé. J'apprécierais vraiment si quelqu'un pouvait expliquer en anglais simple (c'est-à-dire sans jargon technique inutile )
- Qu'est-ce que le repos?
- Quelle position occupe-t-il dans l'écosystème de l'architecture Web?
- Comment étroitement (ou vaguement) il est couplé avec le protocole.
- Quelles sont les alternatives à REST et comment se compare-t-il?
Je comprends qu’il ne sera peut-être pas possible de répondre à cette question en un ou deux paragraphes. Dans ce cas, les liens pertinents seront très appréciés.
Réponses:
Pur anglais:
Représentation: l'action de parler ou d'agir au nom de quelqu'un.
Transfert d'état: statut du transfert.
Technique:
REST vs SOAP
la source
Qu'est-ce que le repos?
Transfert d'État représentatif. Il décrit comment un système peut communiquer avec un autre État. Un exemple serait l'état d'un produit (son nom, sa description, etc.) représenté par XML, JSON ou un texte brut. L'idée généralisée d'état est appelée une ressource.
Quelle position occupe-t-il dans un écosystème d'architecture Web?
REST est généralement associé à l'interface de services Web, car HTTP est de loin le protocole opérateur le plus courant. Dans le modèle à 7 couches, il existe au niveau de la couche d'application . Cependant, voir la section suivante.
À quel point est-il couplé au protocole?
REST n'est pas HTTP. Il utilise HTTP car, dans sa forme la plus générale, REST existe pour aider une machine à mapper le concept de verbe sur une collection arbitraire de noms. HTTP contient un ensemble utile de verbes génériques (GET, PUT, PATCH, etc.) pouvant être appliqués à des noms arbitraires exprimés en URI à l'aide de HTTP, par exemple, GET http://example.org/Product(54 ).
Quelles sont les alternatives à REST et comment se compare-t-il à REST
Cela revient à demander "Quel est le degré de repos de mon approche?" Utilisez la liste suivante (résumée à partir du modèle de maturité Richardson décrit par Martin Fowler ):
Niveau 0 - Le marais de POX
Utilisez POST pour tout (lit, écrit, supprime). C'est SOAP, POX, RPI, etc. Vous utilisez simplement HTTP comme tunnel pour votre propre protocole. Vous ciblez un seul point de terminaison qui fait tout en fonction du contenu du corps de la demande.
Niveau 1 - Ressources
Utilisez POST pour tout. Ciblez plusieurs terminaux conçus pour diffuser des informations sur un objet particulier. Vous venez de découvrir des ressources.
Niveau 2 - Verbes HTTP
Utilisez les verbes HTTP contre les ressources. Maintenant, vous l'obtenez. Le POST consiste à créer, PUT à écraser, les OPTIONS pour les opérations disponibles, SUPPRIMER pour supprimer la ressource. En raison de l'utilisation de ces verbes, différents codes de statut HTTP commencent à devenir plus pertinents (202 ACCEPTED any??).
Niveau 3 - Contrôle Hypermédia ( HATEOAS )
À ce stade, vous faites le dernier saut et introduisez l'hypermédia en tant que mécanisme de contrôle de flux. Un client REST n'a pas besoin de connaissances préalables sur la manière d'interagir avec une application ou un serveur particulier au-delà d'une compréhension générique de l'hypermédia. Cela peut être communiqué en HTTP via le champ d'en-tête Content-Type. Les formats de texte incluent AtomPub et (plus concis) HAL , tandis que HyperAudio fonctionne bien pour les flux audio (voir SoundCloud et al).
la source
state transfer
pas de représentation. l'action de parler ou d'agir au nom de quelqu'un est une représentation, comment cela fonctionne-t-il dans ce contexte?Bien que REST soit une abréviation de Representational State Transfer, il peut être plus facile d’envisager d’exécuter diverses actions via une interface plutôt intuitive.
Par exemple, une URL telle que http://www.mysite.com/FindProduct/125/ peut être interprétée comme une personne souhaitant obtenir des informations sur le produit avec un identifiant de 125.
Alors que REST est généralement considéré en termes de HTTP, le concept pourrait être appliqué à d'autres protocoles, comme indiqué dans la référence de Wikipedia.
D'autres exemples de REST qui peuvent être utiles:
la source