web-dev-qa-db-fra.com

Quelle est la différence entre REST & Reposant

Quelle est la différence entre un système REST et un système RESTful?

Parmi les choses que j'ai lu la plupart des soi-disant services REST sont en fait des services RESTful. Alors, quelle est la différence entre les deux. 

441
AwkwardCoder

Représentation d'état de transfert (REST) ​​ est un style d'architecture logicielle. Comme décrit dans une thèse de Roy Fielding, REST est un "style architectural" qui exploite fondamentalement la technologie et les protocoles existants du Web.

RESTful est généralement utilisé pour faire référence à des services Web mettant en œuvre une telle architecture. 

413
Justin Ethier

"REST" est un paradigme architectural. "RESTful" décrit l'utilisation de ce paradigme.

106
SingleShot

Services/architecture basés sur REST VC Services/architecture RESTFUL

Pour différencier ou comparer ces 2, vous devez savoir ce qui estRESTE

REST (REpresentationationalStateTransfer) est fondamentalement un style de développement architectural ayant quelques principes ...

  • Il devrait être apatride

  • Il devrait accéder à toutes les ressources du serveur en utilisant uniquement l'URI

  • Il n'a pas de cryptage intégré

  • Il n'a pas de session

  • Il utilise un et un seul protocole HTTP

  • Pour effectuer des opérations CRUD, il convient d’utiliser des verbes HTTP tels que get, post, put et delete

  • Il devrait renvoyer le résultat uniquement sous la forme de JSON ou XML, atom, OData, etc. (données légères).

REST based services suivre certains des principes ci-dessus et pas tous

RESTFUL services signifie qu'il suit tous les principes ci-dessus.

Cela ressemble au concept de:

Object-based languages supporte tous les concepts de POO, exemples : C++, C #

Object oriented languages supporte certaines des fonctionnalités de POO, exemples : JavaScript, VB


Exemple :

ASP Dot NET MVC 4 est REST-Based tandis que l'API WEB de Microsoft est RESTFul.

MVC ne prend en charge que certains des principes REST ci-dessus, tandis que l'API WEB prend en charge tous les principes REST ci-dessus. 

MVC ne prend en charge que les éléments suivants de l'API REST

  • Nous pouvons accéder à la ressource en utilisant l'URI

  • Il supporte le verbe HTTP pour accéder à la ressource depuis le serveur

  • Il peut renvoyer les résultats sous la forme de JSON, XML, c'est-à-dire HTTPResponse. 

Cependant, dans le même temps dans MVC

  • Nous pouvons utiliser la session

  • Nous pouvons le rendre stateful

  • Nous pouvons renvoyer une vidéo ou une image à partir de la méthode d'action du contrôleur, ce qui enfreint les principes REST 

C'est pourquoi MVC est REST-Based alors que l'API WEB supporte tous les principes ci-dessus et est RESTFul.

93
Pramod Nikumbh

Comme Jason l'a dit dans ses commentaires, RESTful n'est qu'un adjectif décrivant quelque chose qui respecte les contraintes REST. 

37
Darrel Miller

REST signifie transfert d'état représentationnel. Cela signifie que l’État lui-même n’est pas transféré mais une simple représentation. L'exemple le plus courant est une application basée sur un serveur HTML pur (sans JavaScript). Le navigateur ne sait rien de l'application elle-même mais, par le biais de liens et de ressources, le serveur peut transférer l'état de l'application au navigateur. Lorsqu'un bouton modifierait normalement une variable d'état (par exemple, une page ouverte) dans une application Windows classique, vous avez dans le navigateur un lien qui représente un tel changement d'état.

L'idée est d'utiliser l'hypermédia. Et peut-être pour créer de nouveaux types d'hypermédia. Potentiellement, nous pouvons étendre le navigateur avec javascript/AJAX et créer de nouveaux types d'hypermédia personnalisés. Et nous aurions une vraie application REST.

Ceci est ma version courte de ce que REST représente, le problème est qu’il est difficile à mettre en œuvre. Personnellement, je dis RESTful, lorsque je veux faire référence aux principes REST mais que je sais que je n’applique pas vraiment le concept entier de REST. Nous ne disons pas vraiment SOAPful, que vous utilisiez soit SOAP ou non. Je pense que la plupart des gens ne font pas REST à la manière imaginée par son créateur Roy Fielding, nous mettons en œuvre des architectures RESTful ou RESTlike. Vous pouvez voir sa thèse et vous trouverez l’acronyme REST mais pas le mot RESTful.

27
Arturo Hernandez

REST est un style d'architecture logicielle pour les logiciels distribués

La conformité aux contraintes REST est appelée "RESTful".

Très utilisé aujourd'hui pour construire des services Web comme alternative à SOAP.

Ici vous avez des liens à vérifier

http://en.wikipedia.org/wiki/Representational_State_Transfer
http://www.computerworld.com/s/article/297424/Representational_State_Transfer_REST_
http://www.ibm.com/developerworks/webservices/library/ws-restful/

23
Claudio Redi

merci pour les réponses ..__ Lisez cet article de Alex Rodriguez qui suggère qu'un service Web RESTful a 4 caractéristiques de base qui sont

  1. Utilisez les méthodes HTTP explicitement.
  2. Être apatride.
  3. Exposer les URI de type structure de répertoire.
  4. Transférez XML, JSON (JavaScript Object Notation) ou les deux.
11
Kumait

Représentational State Transfer (REST) ​​est un style d'architecture logicielle destiné aux systèmes hypermédia distribués, tels que le World Wide Web. L’expression «transfert d’État de représentation» a été introduite et définie en 2000 par Roy Fielding 1 [2] dans sa thèse de doctorat. Fielding est l’un des principaux auteurs de la spécification HTTP (Hypertext Transfer Protocol) versions 1.0 et 1.1 . La conformité aux contraintes REST est considérée comme étant «RESTful». Source: Wikipedia

10
Andersson Melo

Les services Web sont essentiellement des sites Web dont le contenu est consommé par des programmes informatiques, pas par des personnes. REST est un ensemble de principes architecturaux stipulant que les services Web doivent exploiter au maximum HTTP et les autres normes Web, afin que les programmes bénéficient de tout ce que les utilisateurs peuvent déjà retirer du Web. REST contraste souvent avec les services Web SOAP et les autres services Web orientés "appel de procédure distante".

Les présentations de Stefan Tilkov sur REST sur Parleys.com sont plutôt bonnes, en particulier celle-ci .

Pour un livre, vous ne pouvez pas faire mieux que Richardson et Ruby's Restful Web Services .

7
Jim Ferrans

Un service basé sur REST est appelé "service RESTful".

Je compte sur la source que: Dr.Dobbs Archive

4
DaddyM

Il existe 4 niveaux d’API définis dans le modèle de maturité Richardson. Ceux-ci sont définis comme: 

  • niveau 0: tout système ayant un seul point de terminaison pour tous ses apis (SOAP ou RPC entrent dans cette catégorie). Les apis de niveau 0 peuvent aussi ressembler à des "commandes".

  • niveau 1: un système décrit par ResourceUri. Il s'agit d'un système qui définit plusieurs URI basés sur des entités (au lieu d'avoir un seul point de terminaison comme le feraient des systèmes de niveau 0). Ces URI peuvent utiliser différentes actions http (POST, GET, PUT, etc.) pour mettre en œuvre différentes actions sur cette ressource.

  • niveau 2: niveau 1 avec utilisation conforme des méthodes/verbes HTTP standard et des réponses de code multi-statut

  • niveau 3: niveau 2 plus HATEOAS (hypermédia inclus dans la réponse décrivant les appels supplémentaires que vous pouvez effectuer)

Alors que les niveaux 1, 2 et 3 peuvent être considérés comme des systèmes REST, seuls les niveaux les plus stricts (niveau 2 et 3) sont considérés comme étant RESTful.

Donc, essentiellement, tous les apis RESTful sont REST apis, mais tous les REST apis ne sont pas RESTful

définition du modèle de maturité de Richardson

1
Andrew Norman

Pensez à REST comme une "classe" architecturale, tandis que RESTful est la "instance" bien connue de cette classe.

S'il vous plaît faites attention au ""; nous ne traitons pas de "vrais" objets de programmation ici.

0
Pat

REST (REpresentation State Transfer) est une architecture à l'aide de laquelle les WebServices sont créés.

et

RESTful est le moyen d'écrire des services en utilisant les architectures REST. Les services RESTful exposent les ressources pour identifier les cibles pour interagir avec les clients.

0
Manas