Aujourd'hui, tout le monde fait de la SOA , même si certains ne comprennent pas vraiment de quoi il s'agit. Alors ils le font mal. En utilisant cette analogie, je sais ce que REST est (ou du moins je pense que je connais) et je veux en faire une partie. Mais je veux bien faire les choses.
Ma question est donc quelle est la bonne façon de faire REST?
rest
soa
resources
implementations
JohnDoDo
la source
la source
Réponses:
Eh bien, il y a beaucoup de façons d'apprendre à créer une application Web RESTful et non, il n'y a pas de bonne façon unique. RESTful n'est pas un standard, mais il utilise un ensemble de standards (HTTP, URI, Type Mime, ...).
Commencez avec ceci: Comment j'ai expliqué le reste à ma femme
Ensuite, procédez comme suit : Livre de recettes des services Web RESTful
Et mettez ensuite tous vos efforts à développer des applications Web, car la meilleure façon d'apprendre consiste à faire des expériences et vous pouvez apprendre beaucoup de vos erreurs;)
Ne vous inquiétez pas si vos premières applications Web ne seront pas complètement RESTful: vous trouverez le moyen de le faire!
Ainsi, citant Obi-Wan Kenobi, "que la force soit avec vous!" ;)
MODIFIER
Ok, laissez-moi être plus précis. Vous voulez faire une webapp RESTful, hein? Comme je l’ai dit, il existe de nombreuses façons de le faire, mais c’est la ligne directrice principale.
Définition
REST (Representational State Transfer) est le style d'une architecture logicielle pour système distribué (comme WWW). Ce n'est pas un standard, mais il utilise un ensemble de standards: HTTP, AJAX, HTML, URI, Type Mime, etc. Nous parlons de la représentation d'une ressource, pas d'une ressource elle-même. Tiré de 'Comment j'ai expliqué REST à ma femme':
Contraintes de l'architecture
Interface uniforme
CRUD
Ok, nous avons vu que pour identifier les ressources, nous pouvons utiliser l’URI, mais nous avons besoin de quelque chose d’autre pour les actions (ajouter, modifier, supprimer, etc.): bienvenue à CRUD (Créer, Lire, Mettre à jour et Supprimer).
Maintenant, en ce qui concerne PUT et DELETE, des problèmes techniques peuvent apparaître (vous les aurez avec le formulaire HTML): souvent les développeurs contournent ce problème en utilisant POST pour chaque requête 'PUT' et 'DELETE'. Officiellement, vous devez utiliser PUT et DELETE. Au fait, fais ce que tu veux. Mon expérience me pousse à utiliser POST et GET à chaque fois.
--- La partie suivante devrait être utilisée mais ce n'est pas un lien REST: il s'agit de données liées ---
URI
URI abstrait à partir de détails techniques! Dites au revoir à l'URI comme suit:
Re-design URI! Prenez le lien ci-dessus et changez-le comme suit:
C'est beaucoup mieux, hein? Cela pourrait être fait par:
Autre chose: utiliser différents URI pour représenter différentes ressources:
Faites attention : about.html et about.rdf ne sont pas des fichiers! Ils pourraient être le résultat d'une transformation XSLT!
Négociation de contenu
Si vous avez atteint ce point, félicitations! Vous êtes probablement prêt à obtenir des concepts plus abstraits, car nous entrons dans les détails techniques du Web sémantique;) Eh bien, lorsque votre client souhaite une ressource, il effectue généralement la requête suivante:
Mais le serveur ne répondra pas avec le about.rdf car il a un autre URI ( http://www.example.com/about.rdf ). Alors jetons un coup d'œil au motif 303 ! Le serveur retournera ceci:
Et le client suivra le lien renvoyé comme suit:
Enfin, le serveur retournera la ressource demandée:
Ne vous inquiétez pas: votre application client ne fera rien de tout cela! Le modèle 303 doit être effectué par l’application serveur et votre navigateur se chargera du reste;)
Conclusion
Souvent, la théorie est loin, très loin de la pratique. Oui, vous savez maintenant comment concevoir et développer une application RESTful, mais les instructions ci-dessus ne sont qu'un indice. Vous trouverez votre meilleur moyen de créer des applications Web et ce ne sera probablement pas la même chose que le souhaite la théorie. Ne vous en foutez pas: D!
Bibliographie
Services Web RESTful, Sameer Tyagi
Les API REST doivent être gérées par l'hypertexte, Roy Thomas Fielding
Services Web RESTful: les bases, Alex Rodriguez
Flux de travail Webber REST
la source
Aucun livre biblique n'est nécessaire. J'avais les mêmes questions et j'ai appris tout ce dont j'avais besoin ou tout ce que je voulais savoir sur REST en lisant ces trois articles:
Comme vous le lirez dans les articles ci-dessus, il est essentiel de considérer les éléments accessibles de votre application comme des "ressources" pouvant être créées, récupérées, mises à jour ou supprimées à l'aide des "verbes" HTTP existants: GET, PUT, POST. , SUPPRIMER.
Vous devez également connaître la différence entre PUT et POST et savoir quand les utiliser. GET, PUT, and DELETE doivent être des transactions idempotentes, pas POST.
En outre, utilisez correctement les codes d'état HTTP lors de la communication avec le client.
la source