web-dev-qa-db-fra.com

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

Dernièrement, je me suis intéressé à me familiariser avec REST. J'ai essayé de lire entrée wiki sur REST , mais cela ne m'a pas aidé. J'apprécierais vraiment que quelqu'un puisse expliquer en anglais simple (c'est-à-dire sans inutile jargon technique)

  1. Qu'est-ce que REST
  2. Quelle place il occupe dans l'écosystème de l'architecture web
  3. À quel point (ou peu) il est couplé au protocole.
  4. Quelles sont les alternatives à REST et comment se compare REST).

Je comprends qu'il ne sera peut-être pas possible de répondre à cela en un ou deux paragraphes, auquel cas les liens pertinents seront très appréciés.

85
Gaurav

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: état du transfert.


Technique:

  • nous ne transférons pas un objet réel mais une représentation de celui-ci sous une forme (par exemple, un xml/json/text pour représenter une table de base de données).
  • REST pour exposer une API publique sur Internet pour gérer les opérations CRUD sur les données. REST se concentre sur l'accès aux ressources nommées via une seule interface cohérente.
  • REST est representes via un type de média. Certains exemples de types de médias incluent XML, JSON et RDF.
  • REST est un style architectural pour architecture orientée ressources (ROA) , pas une spécification ou une norme.
  • Le style architectural signifie que c'est un concept, une théorie (et comment il est mis en œuvre, c'est à vous de décider)
  • Tout est identifié par un point final unique. c'est-à-dire qu'il y a un point final pour chaque ressource (données).
  • Le point de terminaison est composé d'un nom de domaine avec une adresse de ressource.

REST vs SOAP

10
Premraj

Qu'est-ce que REST?

Transfert de l'Etat représentatif. Il décrit comment un système peut communiquer un état avec un autre. Un exemple serait l'état d'un produit (son nom, sa description, etc.) représenté en XML, JSON ou en texte brut. L'idée généralisée d'État est appelée une ressource.

Quelle place occupe-t-il dans un écosystème d'architecture web?

REST est généralement associé à l'interface des services Web, car HTTP est de loin le protocole de transporteur le plus courant. Dans le modèle à 7 couches, il existe au niveau couche application . Voir cependant la section suivante.

Dans quelle mesure est-il étroitement (ou vaguement) 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 d'un verbe contre une collection arbitraire de noms. HTTP contient un ensemble utile de verbes génériques (GET, PUT , PATCH, etc.) qui peuvent s'appliquer à des noms arbitraires exprimés en URI en utilisant HTTP, par exemple GET http://example.org/Product (54 ).

Quelles sont les alternatives à REST et comment REST se compare-t-il à elles

Cela revient à demander "Dans quelle mesure RESTful est mon approche?" Utilisez la liste suivante (résumée à partir du Richardson Maturity Model comme décrit par Martin Fowler ):

Niveau 0 - Le marais de POX

Utilisez POST pour tout (lectures, écritures, suppressions). Il s'agit de 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 points de terminaison conçus pour diffuser des informations sur une chose particulière. Vous venez de découvrir des ressources.

Niveau 2 - Verbes HTTP

Utilisez des verbes HTTP par rapport aux ressources. Maintenant, vous l'obtenez. POST est à créer, PUT est à écraser, OPTIONS pour les opérations disponibles, SUPPRIMER pour, eh bien, supprimer la ressource. À la suite de l'utilisation de ces verbes différents codes d'état HTTP commence à devenir plus pertinent (202 ACCEPTÉ quelqu'un?).

Niveau 3 - Contrôle hypermédia ( HATEOAS )

À ce stade, vous faites le saut final et introduisez l'hypermédia comme mécanisme de contrôle de flux. Un client REST n'a besoin d'aucune connaissance préalable sur la façon 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)

44
Gary Rowe

Alors que REST est une abréviation de Representational State Transfer, il peut être plus facile d'envisager l'idée d'effectuer diverses actions via une interface quelque peu 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 ID 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 Wikipedia.

Autres exemples de REST qui peuvent être utiles:

11
JB King