Quelle est la différence entre un système REST et un système RESTful?
D'après quelques éléments que j'ai lus, la plupart des services dits REST sont en fait des services RESTful. Quelle est donc la différence entre les deux.
Quelle est la différence entre un système REST et un système RESTful?
D'après quelques éléments que j'ai lus, la plupart des services dits REST sont en fait des services RESTful. Quelle est donc la différence entre les deux.
Réponses:
Le transfert d'état représentatif (REST) est un style d'architecture logicielle. Comme décrit dans une dissertation de Roy Fielding, REST est un "style architectural" qui exploite essentiellement la technologie et les protocoles existants du Web.
RESTful est généralement utilisé pour faire référence aux services Web implémentant une telle architecture.
architect
de quoi? d'urls? comme https://translation.googleapis.com/language/translate/v2
c'est le style REST?
Pour différencier ou comparer ces 2, vous devez savoir ce qu'est REST .
REST ( RE presentational S tate T ransfer) est fondamentalement un style de développement architectural ayant quelques principes:
Il devrait être apatride
Il doit 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 doit utiliser des verbes tels que HTTP get
, post
, put
etdelete
Il doit 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.
Il est similaire au concept de:
Object-based languages
prend en charge tous les concepts OOP, exemples : C ++, C #
Object oriented languages
prend en charge certaines des fonctionnalités des POO, exemples : JavaScript, VB
Exemple :
ASP Dot NET MVC 4 est REST-Based
alors que Microsoft WEB API l'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 prend uniquement en charge les éléments suivants à partir de l'API REST
Nous pouvons accéder à la ressource en utilisant l'URI
Il prend en charge le verbe HTTP pour accéder à la ressource à partir du serveur
Il peut renvoyer les résultats sous forme de JSON, XML, c'est-à-dire HTTPResponse.
Cependant, en même temps dans MVC
Nous pouvons utiliser la session
Nous pouvons le rendre dynamique
Nous pouvons retourner une vidéo ou une image à partir de la méthode d'action du contrôleur qui viole fondamentalement les principes REST
C'est pourquoi MVC est REST-Based
alors que l'API WEB prend en charge tous les principes ci-dessus et l'est RESTFul
.
"REST" est un paradigme architectural. "RESTful" décrit l'utilisation de ce paradigme.
architect
de quoi? d'urls? comme https://translation.googleapis.com/language/translate/v2
c'est le style REST?
Comme Jason l'a dit dans les commentaires, RESTful est simplement utilisé comme un adjectif décrivant quelque chose qui respecte les contraintes REST.
REST signifie transfert d'état représentatif. Cela signifie que l'État lui-même n'est pas transféré, mais une simple représentation de celui-ci l'est. L'exemple le plus courant est une application basée sur un serveur HTML pur (pas de javascript). Le navigateur ne sait rien de l'application elle-même mais grâce à des liens et des ressources, le serveur est en mesure de transférer l'état de l'application au navigateur. Lorsqu'un bouton changerait normalement une variable d'état (par exemple, page ouverte) dans une application Windows standard, dans le navigateur, vous avez 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. Nous pouvons potentiellement é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, quand je veux faire référence aux principes REST, mais je sais que je ne mets pas vraiment en œuvre tout le concept de REST. Nous ne disons pas vraiment SOAPful, parce que vous utilisez SOAP ou non. Je pense que la plupart des gens ne font pas REST comme il a été imaginé par son créateur Roy Fielding, nous implémentons en fait des architectures RESTful ou RESTlike. Vous pouvez voir sa dissertation , et vous trouverez l'acronyme REST mais pas le mot RESTful.
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 créer des services Web comme alternative à SOAP.
Ici vous avez quelques 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/
merci pour les réponses. Lisez cet article d'Alex Rodriguez qui suggère qu'un service Web RESTful a 4 caractéristiques de base qui sont:
Representational State Transfer (REST) est un style d'architecture logicielle pour les systèmes hypermédias distribués tels que le World Wide Web. Le terme transfert d'état représentatif a été introduit et défini en 2000 par Roy Fielding 1 [2] dans sa thèse de doctorat. Fielding est l'un des principaux auteurs des versions 1.0 et 1.1 de la spécification Hypertext Transfer Protocol (HTTP). La conformité aux contraintes REST est appelée «RESTful». Source: Wikipedia
Les services Web sont essentiellement des sites Web dont le contenu est consommé par des programmes informatiques et non par des personnes. REST est un ensemble de principes architecturaux qui stipulent que les services Web doivent exploiter au maximum HTTP et d'autres normes Web, de sorte que les programmes obtiennent toutes les bonnes choses que les gens peuvent déjà retirer du Web. REST est souvent en contraste avec les services Web SOAP et d'autres services Web orientés «appel de procédure distante».
Les présentations de Stefan Tilkov sur REST sur Parleys.com sont assez bonnes, surtout celle-ci .
Pour un livre, vous ne pouvez pas trouver mieux que Richardson et Ruby's Restful Web Services .
Un service basé sur REST est appelé "service RESTful".
Source, je compte sur le fait de publier cela: Archive Dr.Dobbs
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 qui a un point de terminaison unique pour tous ses apis (SOAP ou RPC entrent dans cette catégorie). Les API de niveau 0 peuvent également 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 les systèmes de niveau 0). Ces URI peuvent utiliser différentes actions http (POST, GET, PUT, etc.) pour implémenter différentes actions sur cette ressource.
niveau 2: alias niveau 1 avec une utilisation conforme des méthodes / verbes HTTP standard et des réponses de code multi-états
niveau 3: alias niveau 2 plus HATEOAS (hypermédia inclus dans la réponse qui décrit les appels supplémentaires que vous pouvez effectuer)
Alors que les niveaux 1, niveau 2 et niveau 3 peuvent être considérés comme des systèmes REST, seuls les niveaux plus stricts (alias niveau 2 et niveau 3) sont considérés comme RESTful.
Donc, essentiellement tous les API RESTful sont des API REST, mais tous les API REST ne sont pas RESTful
Un «service REST» et un «service RESTful» sont une seule et même chose.
Un système RESTful est tout système qui suit les conventions REST telles que définies dans le document d'origine qui a créé l'idée d'applications en réseau RESTful .
Il convient de noter qu'il existe différents niveaux de RESTfulness. Dans l'ensemble, REST est un style, pas une norme, donc il y a de la place pour une interprétation basée sur les besoins. un exemple est les URL de ressources hiérarchiques (par exemple /things/ID/relatedthings
) vs les URL plates (par exemple /things/ID
et /relatedthings?thing=ID
)
REST (REpresentation State Transfer) est une architecture à l'aide de laquelle les WebServices sont créés.
et
RESTful est un moyen d'écrire des services à l'aide des architectures REST. Les services RESTful exposent les ressources pour identifier les cibles d'interaction avec les clients.