Amazon web services: savon ou autres?

Amazon Web Services (AWS) initialement lancé avec le soutien de SOAP pour les interactions avec son API, mais il a cessé de obsolète (réduit son soutien pour, en d'autres termes) son interface SOAP en faveur de repos. La meilleure recommandation pour toute utilisation de l'API AWS est que vous vous concentrez sur l'utilisation REST.

De cette façon, vous ne finira pas avec des programmes qui arrêtent un jour de travail - longtemps après que vous avez oublié les détails des mécanismes d'interaction. L'expérience de la tâche désagréable d'avoir à revenir dans un système et tenter de reconstituer vos actions à partir des mois ou des années plus tôt est un malheureux.

Il n'y a pas de sens au destin tentant avec AWS - si vous souhaitez interagir avec l'API AWS, utiliser REST, qui est la direction à long terme d'Amazon.

L'ancienne approche, SOAP (Simple court pour protocole Object Access), avait le soutien de l'industrie répandue, avec un ensemble complet de normes. Ces normes étaient trop complète, malheureusement. Les personnes qui conçoivent SOAP configurer pour être extrêmement flexible - il peut communiquer à travers le web, e-mail, et les réseaux privés. Pour assurer la sécurité et la gérabilité, un certain nombre de normes de soutien qui intègrent avec SOAP ont également été définis.




SOAP est basé sur une norme de codage du document connu sous le nom Extensible Markup Language (XML, pour faire court), et le service SOAP est défini de telle sorte que les utilisateurs peuvent alors tirer parti de XML, peu importe ce que le réseau de communication sous-jacente est. Pour que ce système fonctionne, cependant, les données transférées par SOAP (communément appelé le charge utile) Doit également être au format XML.

Remarquez un modèle ici? La poussée pour être complète et flexible (ou, pour être tout à tous les gens), plus l'exigence de charge utile XML signifiait que SOAP a fini par être assez complexe, ce qui rend beaucoup de travail à utiliser correctement. Comme vous pouvez le deviner, il a trouvé beaucoup de gens SOAP intimidant et, par conséquent, ont résisté à l'utiliser.

Il ya une dizaine d'années, un étudiant au doctorat défini une autre approche de services Web dans le cadre de sa thèse: REST ou Representational State Transfer. REST, qui est beaucoup moins complet que SOAP, aspire à résoudre moins de problèmes. Il ne traite pas certains aspects de SOAP qui semblait important, mais qui, rétrospectivement, rendu plus complexe à utiliser - la sécurité, par exemple.

L'aspect le plus important de REST est qu'il est conçu pour intégrer les protocoles Web standards afin que les services REST peuvent être appelés avec les verbes et les URL Web standard. Par exemple, un appel REST valide ressemble à ceci:

http://search.examplecompany.com/CompanyDirectory/EmployeeInfo?empname=BernardGolden

Voilà tout ce qu'il faut pour faire une requête au service REST de examplecompany pour voir l'information du personnel. Le verbe HTTP qui accompagne cette demande est GET, demandant des informations à renvoyer. Pour supprimer les informations, vous utilisez le verbe DELETE. Pour insérer des informations, vous utilisez le verbe POST. Pour mettre à jour des informations, vous utilisez le verbe PUT.

Pour le poste et de mettre des actions, des renseignements supplémentaires seraient accompagner le empname et être séparés par une esperluette () Pour indiquer un autre argument pour être utilisé par le service.

REST impose pas de conditions particulières de mise en forme sur le payloads- de service à cet égard, elle diffère de SOAP, ce qui nécessite XML. Pour les interactions simples, une chaîne d'octets est tout ce que vous avez besoin pour le payload- pour des interactions plus complexes (par exemple, en plus de retourner les informations de votre salarié, vous voulez placer une demande pour l'information de tous les employés dont le nom commence par G de l'employé) , la convention d'encodage JSON est utilisé. (JSON, si vous êtes curieux, signifie javascript Object Notation).

Comme on pouvait s'y attendre, l'utilisation simple modèle REST, son alignement avec les protocoles et les verbes Web standard, et sa mise en forme de la charge utile moins restrictive ont fait attraper avec les développeurs comme une maison en feu.