RESTE devrait être utilisé si il est très important pour vous de minimiser le couplage entre les composants client et serveur dans une application distribuée.
Cela peut être le cas si votre serveur est destiné à être utilisé par de nombreux clients différents que vous n'avez pas le contrôle. Il peut également être le cas si vous voulez être en mesure de mettre à jour le serveur régulièrement sans avoir besoin de mettre à jour le logiciel client.
Je peux vous assurer que la réalisation de ce faible niveau de couplage est pas facile à faire. Il est essentiel de suivre toutes les contraintes de REPOS pour réussir. Le maintien d'un purement apatrides connexion est difficile. Choisir les bons types de médias et de presser vos données dans les formats est délicate. Créer vos propres types de support peuvent être encore plus difficile.
L'adaptation de riches comportement du serveur dans l'uniforme HTTP interface peut être source de confusion et parfois semble futile en comparaison, relativement simple RPC approche.
Malgré les difficultés, les avantages sont que vous avez un service qu'un développeur client doit être en mesure de comprendre facilement en raison de la cohérence de l'utilisation du protocole HTTP. Le service doit être facilement détectable en raison de l'hypermédia et le client doit être extrêmement résistantes aux changements sur le serveur.
Les avantages de l'hypermédia et l'évitement de l'état de session permet l'équilibrage de charge simple et service de partitionnement possible. La stricte conformité aux HTTP règles de la disponibilité des outils comme les débogueurs et la mise en cache des procurations chose de merveilleux.
Mise à jour
Il me semble que le REPOS est une autre
"le dernier mot de la mode" (ou j'ai peut être
totalement faux, parce que je n'ai pas jamais
vu de REPOS dans la pratique).
Je pense que le REPOS est devenu à la mode parce que les gens qui tentent de faire SOA type de projets ont constaté que l'utilisation de la pile de SAVON ils ne sont pas la réalisation de bénéfices qui ont été promis. Les gens de continuer de tourner vers le web comme un exemple de la simple intégration des méthodologies. Malheureusement, je pense que les gens sous-estiment la quantité de la planification et de la prospective qui est entré dans la création de la web et ils simplifient à l'excès ce qui doit être fait pour permettre à la nature de fortuite de réutilisation qui ne se produisent sur le web.
Vous dites que vous n'avez jamais vu de REPOS dans la pratique, mais qui ne peut pas être vrai si jamais vous utilisez un navigateur web. Le navigateur web est un client REST.
- Pourquoi n'avez-vous pas besoin de faire un navigateur
mise à jour quand quelqu'un change le code html
sur un site web?
- Pourquoi ne puis-je ajouter une nouvelle série complète de
les pages d'un site web et le "client"
pouvez toujours accéder à ces nouvelles pages
sans une mise à jour?
- Pourquoi n'ai-je pas besoin de fournir un
"service-description de langue" à la
navigateur web pour lui dire quand il va
pour http://example.org/images/catque
le type de retour d'image jpeg
et quand vous allez à
http://example.org/description/cat
le type de retour texte/html?
- Pourquoi puis-je utiliser un navigateur web pour visiter
les sites qui n'existait pas lors de la
navigateur a été libéré? Comment l'
client savoir à propos de ces sites?
Ces peut sembler stupides questions, mais si vous savez la réponse, alors vous pouvez commencer à voir ce qui RESTE est tout au sujet.
Regardez StackOverflow pour plus d'avantages de REPOS. Quand je suis à la recherche à une question, je peux marquer cette page ou envoyer l'url à un ami et il peut voir les mêmes informations. Il n'a pas à naviguer sur le site afin de trouver la question.
StackOverflow utilise une variété de OpenId services pour l'authentification, gravatar.com pour l'avatar images, google-analytics et Quantserve pour l'analyse de l'information. Ce genre de multi-entreprise d'intégration est le type de chose que le SAVON monde ne rêve que de. L'un des meilleurs exemples est le fait que les bibliothèques jQuery qui sont utilisés pour piloter le StackOverflow de l'INTERFACE utilisateur sont extraites de Google du Réseau de diffusion de Contenu. Le fait que, de la SORTE, peut orienter le client (navigateur web) pour télécharger le code à partir d'un site tiers pour améliorer la performance témoigne de la faible couplage entre le client web et le serveur.
Ce sont des exemples d'une architecture REST au travail.
Aujourd'hui, certains sites web / applications ne enfreindre les règles de REPOS et ensuite le navigateur ne fonctionne pas comme prévu.
- L'infâme bouton retour du problème
est causé par l'utilisation côté serveur
l'état de session.
- L'équilibrage de la charge peut devenir une douleur lors de l'
vous avez l'état de session côté serveur.
- Les applications Flash empêchent souvent la
URL à partir de l'identification d'un
la représentation.
- L'autre problème que les pauses web
les navigateurs est pauvre, de la conformité à
media-type de normes. Nous entendons tous
le temps sur la façon IE6 doit être
tué. Le problème, c'est que
les normes n'ont pas été correctement suivie,
ou ont été ignorés pour quelque raison que ce soit.
- L'utilisation de sessions de connexion sont les
source de nombreux trous de sécurité.
RESTE partout. C'est la partie du web qui fait que cela fonctionne bien. Si vous voulez construire des applications distribuées qui peut évoluer comme le web, la résilience au changement comme le web et de promouvoir la réutilisation, le web a fait, puis suivez les mêmes règles, ils l'ont fait lors de la construction des navigateurs web.