Si un Netflix ou Twitter-style web l'utilisation des services REST ou SOAP?

J'ai mis en place deux services REST: Twitter et Netflix. Les deux fois, j'ai eu du mal à trouver de l'utilisation et de la logique impliqués dans la décision d'exposer ces services RESTE à la place du SAVON. J'espère que quelqu'un peut indice-moi pour ce que je suis absent et expliquer pourquoi le RESTE a été utilisé comme la mise en œuvre des services pour des services tels que ces.

  1. Mise en œuvre d'un service REST prend infiniment plus de temps que la mise en œuvre d'un service SOAP. Des outils existent pour toutes les langues modernes/frameworks/plates-formes à lire dans un document WSDL et de sortie des classes proxy et les clients. Mise en œuvre d'un service REST est fait à la main et par la lecture de la documentation. En outre, alors que la mise en œuvre de ces deux services, vous avez à faire "devine" ce qui va revenir à travers le tuyau comme il n'y a pas de véritable schéma ou de document de référence.

  2. Pourquoi rédiger un service REST qui renvoie les données XML de toute façon? La seule différence est que, avec le REPOS que vous ne connaissez pas le type de chaque élément/attribut représente - vous êtes sur votre propre pour la mettre en œuvre et espère qu'un jour une chaîne de caractères n'est pas tombé dans un champ de la pensée a toujours été un int. SOAP définit la structure de données en utilisant le WSDL si ce n'est un aucun-brainer.

  3. J'ai entendu la plainte avec du SAVON vous avez les "frais généraux" de l'Enveloppe SOAP. En cette journée et l'âge, n'avons-nous vraiment besoin de s'inquiéter une poignée d'octets?

  4. J'ai entendu l'argument qu'avec du REPOS, vous pouvez simplement pop de l'URL dans le navigateur et de voir les données. Bien sûr, si votre service REST simple ou sans authentification. Le service Netflix, par exemple, utilise OAuth qui vous oblige à signer des choses et d'encoder les choses avant que vous pouvez même soumettre votre demande.

  5. Pourquoi avons-nous besoin d'un "lisible" URL pour chaque ressource? Si nous étions à l'aide d'un outil pour mettre en œuvre le service, ne nous soucions vraiment de l'URL réelle?

  • Vous devriez noter que RESTE n'a pas été "inventé", il existe depuis le début de HTTP.
  • Une conversation entre vous et Roy Fielding serait tout à fait divertissant. 🙂
  • Vous pouvez demander sur le reste-discuter de la liste de diffusion, je suis sûr que vous obtenez un peu intéressant de contre-arguments. Je vous suggère de reformulation de quelques pièces à éviter la confrontation (si vous êtes intéressé par les réponses plutôt que de blâmer quelqu'un, qui est). Voici l'adresse: tech.groups.yahoo.com/group/rest-discuss
  • Quelques choses pour nous commencer. Tout d'abord, la haine est un mot fort. Deuxièmement, notre industrie est rempli avec plus d'une façon de faire les choses. Donc, je ne vais pas entrer dans la philosophie de l'argument pour l'existence de REPOS. Comme un bon développeur, vous devriez être ouvert à l'aide de la technologie la mieux résout le problème. Pour certains services web, qui peut être de REPOS. J'ai écrit plus, mais c'était fermé 😉
  • le début de HTTP"? Mais HTTP/0.9 n'ont pas de méthodes. HTTP/1.0 défini get, head et post.
  • Mais c'est tout ce dont vous avez besoin pour mettre en œuvre le REPOS. Bien sûr, vous pouvez utiliser amateur HTTP/1.1 méthodes, si elles sont disponibles, mais ils ne sont pas nécessaires.
  • Pryden : si vous n'avez pas les méthodes HTTP, vous avez un accès en lecture seule banque de données, et pas différente de celle d'un tas de fichiers XML sur un site Gopher. (J'allais dire "site FTP", mais même qui a permis à l'affichage, le changement de nom, etc.)
  • Pour pinailler en arrière, HTTP 0.9 déjà mis en œuvre la GET verbe. Assez pour construire une base de REPOS de service qui récupère des données.
  • Quel est le problème avec la POSTE? Il est parfaitement acceptable d'un document de présentation verbe, et vous pouvez construire une assez puissant service RESTful en utilisant uniquement GET et POST.
  • Pryden : 0xA3 clairement dit " depuis le début de HTTP et HTTP/0.9 n'incluent pas de la POSTE, car il n'avait pas la notion de méthodes (ou les en-têtes pour cette question). Si vous voulez être buzzword conforme et de prétendre que le fait de mettre un tas de fichiers statiques dans un annuaire est un service web RESTful', alors n'hésitez pas ... si c'est le cas, alors, j'ai écrit "webservices" pour les 16 ans. (et si vous incluez gopher, trop ... bien, puis j'ai écrit des webservices avant de "le web" de l'existence même.
  • Wow. Qui se soucie HTTP 0.9? Venez sur l'homme, vous savez ce que @0xA3 signifiait! Arguant juste pour le plaisir de se disputer...
  • Point de pris. Mais une partie de l'ironie de REPOS, c'est que ce n'est pas une "nouvelle" technologie, c'est juste un nouveau mot à la mode pour quelque chose qui a travaillé depuis le début des années 90. Et @jsm11482: c'est exactement pourquoi cette question est fermé comme "subjectif et argumentatif" -- car il attire des arguments!
  • Ma réponse à cette question est ici bit.ly/cAdYAr
  • Je pense que Microsoft association avec du SAVON de gens choisissent de REPOS. Le SAVON est juste mieux!

InformationsquelleAutor Josh M. | 2010-07-19