Que signifie exactement REST? Qu’est-ce que c’est, et pourquoi ça grossit maintenant?

je comprendre (je pense) l’idée de base de RESTful-ness. Utilisez les méthodes HTTP sémantiquement – GET obtient, met les mises, supprime les suppressions, etc. Je pensais avoir compris l’idée derrière REST, mais je pense que je confonds cela avec les détails d’une implémentation HTTP. Quelle est l’idée derrière le repos, pourquoi cela devient-il important? Est-ce que les gens l’utilisent depuis longtemps, dans un coin des internets sur lesquels ma lampe torche n’a jamais brillé?


Le discours de Google mentionne les protocoles de publication Atom ayant beaucoup de synergie avec les implémentations RESTful. Des pensées à ce sujet?

Voici à quoi pourrait ressembler REST:

POST /user fname=John&lname=Doe&age=25 

Le serveur répond:

 201 Created Location: /user/123 

À l’avenir, vous pourrez alors récupérer les informations utilisateur:

 GET /user/123 

Le serveur répond (en supposant une réponse XML):

 200 OK JohnDoe25 

Mettre à jour:

 PUT /user/123 fname=Johnny 

Voici mon sharepoint vue …

L’intérêt de faire des services RESTful est que, plutôt que de créer des services Web avec des dizaines de méthodes fonctionnelles, nous normalisons quatre méthodes (Create, Resortingeve, Update, Destroy):

  • POSTER
  • OBTENIR
  • METTRE
  • EFFACER

REST devient populaire car il représente également une standardisation des formats de messagerie au niveau de la couche application. Alors que HTTP utilise les quatre verbes de base de REST, le format de message HTTP commun à HTML n’est pas un contrat pour la création d’applications.

La meilleure explication que j’ai entendue est une comparaison entre TCP / IP et RSS.

Ethernet représente une standardisation sur le réseau physique. Le protocole Internet (IP) représente une standardisation plus élevée dans la stack et possède plusieurs variantes (TCP, UDP, etc.). L’introduction du “Transmission Control Protocol” (livraison de paquets garantis) a défini des contrats de communication qui nous ont permis d’accéder à un nouvel ensemble de services (FTP, Gopher, Telnet, HTTP) pour la couche application.

Par analogie, nous avons adopté XML comme «protocole», nous commençons maintenant à normaliser les formats de message. RSS devient rapidement la base de nombreux services RESTful. L’API GData de Google est une variante RSS / ATOM.

Le «gadget de bureau» est une excellente prise de conscience de ce battage: un client simple peut consumr du contenu Web de base ou des mashups complexes en utilisant une API et un standard de messagerie communs.

HTTP est actuellement sous-utilisé et mal utilisé.

Nous n’utilisons généralement que deux méthodes de HTTP: GET et POST, mais il en existe d’autres: DELETE, PUT, etc. ( http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html )

Donc, si nous avons des ressources, définies par des URL RESTful (chaque object de domaine de votre application a une URL unique sous la forme http://yoursite.com/path/to/the/resource ) et une implémentation HTTP décente, nous pouvons manipuler des objects dans votre domaine en écrivant des phrases:

GET http://yoursite.com/path/to/the/resource

SUPPRIMER http://votresite.com/path/à/the/resource

POST http://yoursite.com/path/to/the/resource

etc

l’architecture est belle et tout.

mais ceci est juste une vue théorique, les scénarios du monde réel sont décrits dans tous les liens postés dans les réponses avant le mien.

Allons à l’histoire, parlons de la recherche Roy Fielding – « Styles architecturaux et conception d’architectures logicielles basées sur le réseau ». C’est un gros papier et parle beaucoup de choses diverses. Mais en tant qu’ingénieur standard Comment voulez-vous expliquer la signification claire de REST (Representational State Transfer) et quel est son style architectural?

Voici ma façon d’expliquer – «Qu’est-ce que le REPOS».

Voir ce www (world wide web) s’exécutant sur divers matériels, par exemple des routeurs, des serveurs, des pare-feu, des infrastructures cloud, des commutateurs, des réseaux locaux et des réseaux étendus. L’objective général de ce www (world wide web) est de dissortingbuer des hypermédia . Ce World Wide Web équipé de divers services, par exemple des services basés sur l’information, des sites Web, des chaînes YouTube, des sites Web dynamics et des sites Web statiques. Ce World Wide Web utilise le protocole HTTP pour dissortingbuer hypermedia à travers le monde avec un mécanisme client / serveur. Ce protocole HTTP fonctionne par dessus TCP / IP ou toute autre stack réseau appropriée.

Ce protocole HTTP utilise huit méthodes pour gérer le «protocole de dissortingbution» ou le «style architectural de la dissortingbution». Ces huit méthodes sont les suivantes: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT.

Mais au-delà de ce protocole HTTP, les applications Web utilisent leur propre méthode de dissortingbution d’hypermédia. Par exemple, les applications Web utilisent des services Web étroitement liés aux clients et aux serveurs. tel canal de dissortingbution au-dessus de HTTP.

Ce que dit Roy Fielding Research , à savoir que ces huit méthodes OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE et CONNECT de HTTP sont si efficaces pour dissortingbuer HyperMedia à travers le monde en plus des nombreuses ressources matérielles et stacks réseau avec client. / mécanisme de serveur, pourquoi ne pas utiliser la même stratégie avec notre application Web. Sur ce GET, POST, DELETE et PUT sont les plus utilisés. Ainsi, quatre méthodes fournissent HyperMedia à travers le monde.

Dans l’application Style d’architecture API REST, une application Web doit concevoir la logique métier (résidant sur un serveur, par exemple Tomcat, Apache HTTP) avec toutes les entités d’object (par exemple, le client est une entité) et les opérations possibles (par exemple, sur un identifiant client ‘). Les opérations possibles avec ces entités doivent être conçues avec quatre opérations ou méthodes principales, à savoir: Créer, Récupérer, Mettre à jour, Supprimer. Ces entités appelées en tant que ressources sont présentées ou représentées sous une forme, par exemple JSON ou XML ou autre chose. Nous avons Client (navigateurs) qui appelle les méthodes Créer, Récupérer, Mettre à jour, Supprimer (CRUD) pour exécuter la fonction appropriée sur cette ressource.

Mais comme expliqué le concept de représentation , cela signifie que les entités de la logique métier ou des objects sont représentées. mais qu’en est-il avec ‘State Transfer’?

Le transfert d’état , c’est l’état de la communication entre le client et le serveur. Il parle de la conception des «transferts d’état» du client vers le serveur, par exemple, le client a d’abord appelé l’opération «Créer un client», après avoir appelé cet état du client ou des états du client que le client peut appeler. Son état peut être de “récupérer les données client créées”, “mettre à jour les données client” ou

REST est une architecture où les ressources sont définies et adressées.

Pour mieux comprendre REST, vous devez examiner l’ architecture orientée ressources (ROA) qui fournit un ensemble de directives pour la mise en œuvre effective de l’architecture REST.

REST n’a pas besoin d’être sur HTTP, mais c’est le plus courant. REST a d’abord été créé par l’un des créateurs de HTTP.