Qu'est-ce que REST (en anglais simple) [fermé]


84

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 )

  1. Qu'est-ce que le repos?
  2. Quelle position occupe-t-il dans l'écosystème de l'architecture Web?
  3. Comment étroitement (ou vaguement) il est couplé avec le protocole.
  4. 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.



Je trouve ceci informatif mais pas trop détaillé: ibm.com/developerworks/webservices/library/ws-restful
NoChance

Je me demande si cette question peut être considérée comme une réponse?
Gary Rowe

@GaryRowe J'avais marqué une réponse, devinez qu'elle a été supprimée pour une raison quelconque. Je ne comprends pas ce site.
Gaurav

1
Aucune des réponses ci-dessous n'utilise le mot "idempotent". Vous devriez le rechercher: l'idempotency est un aspect important de toute architecture RESTful.
Salomon Slow

Réponses:


10

Qu'est-ce que REST (en anglais simple)

Pur anglais:

Représentation: l'action de parler ou d'agir au nom de quelqu'un.
Transfert d'état: statut du transfert.


Technique:

  • nous ne transférons pas un objet réel mais une représentation de celui-ci dans un formulaire (par exemple, un fichier xml / json / text pour représenter une table de base de données).
  • REST pour exposer une API publique sur Internet afin de gérer les opérations CRUD sur les données. REST est axé sur l'accès aux ressources nommées via une interface cohérente unique.
  • REST est représenté via un type de média. Parmi les types de supports, citons XML, JSON et RDF.
  • REST est un style architectural pour une architecture orientée ressources (ROA) , et non une spécification ou une norme.
  • Le style architectural signifie qu'il s'agit d'un concept, d'une théorie (et de la manière dont cela a été mis en œuvre, à vous de décider)
  • Tout est identifié par un point de terminaison unique. C'est-à-dire qu'il y a un point de terminaison pour chaque ressource (données).
  • Le noeud final est constitué du nom de domaine avec l'adresse de la ressource.

REST vs SOAP


43

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).


vous dites que "REST n'est pas HTTP", mais Roy Fielding semble assez attaché à l'idée que l' hypertexte est une exigence. Avec l'ensemble de l'accord HATEOAS sans lequel - selon lui - vous ne faites pas un "bon" REST. Alors que l'hypertexte! = HTTP, je me demande combien vous pouvez réellement faire en dehors de HTTP ...
Andres F.

Selon cette information ( roy.gbiv.com/untangled/2008/… ), Roy Fielding souligne que l'hypertexte, ou son sous-ensemble, hypermédia, peut être exprimé en dehors du HTML tant qu'il prend en charge les liens.
Gary Rowe

3
HTTP fonctionne bien avec REST car il offre des verbes standardisés pour travailler avec des URI représentant des noms dans REST dans un protocole sans état. Idéal. Cependant, dans sa thèse ( ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm ), il note que "REST ne limite pas la communication à un protocole particulier, mais limite l’interface entre les composants, et donc la portée de les hypothèses d'interaction et de mise en œuvre qui pourraient autrement être faites entre les composants. " Il est donc peu probable qu'une implémentation FTP complète soit RESTful sans gestion de l'état côté client.
Gary Rowe

2
+1 pour le lien Martin Fowler. Comme d'habitude, Martin Fowler a écrit un article décrivant un concept de la manière la plus claire et la plus concise possible
Tom Carter

vous avez couvert state transferpas 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?
Premraj

11

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:


2
Merci pour le lien vers "Learn REST: A Tutorial"! C'est le premier tutoriel que j'ai lu qui me laisse le sentiment d'avoir appris quelque chose de concret. Tout le reste que j'ai lu (y compris l'article de Wikipedia) décrit REST de manière très abstraite, entouré de jargon technique.
Avian00

le premier lien ne fonctionne pas. Votre réponse est utile quand même !!
Enthusiast
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.