Des exemples des meilleurs SOAP/REST/RPC Api web? Et pourquoi tu les aimes? Et ce qui ne va pas avec eux?

Dans mon entreprise nous partons en direction de la dans web Api pour accéder et mettre à jour nos données; d'abord, pour les partenaires, mais probablement au public à l'avenir. Au moment où le moyen de l'API va chercher (par exemple, SOAP, REST, RPC) est complètement ouvert et que nous n'avons pas toutes les décisions, de sorte que je suis intéressé dans les deux exemples de web Api pense que les gens sont bons, et pourquoi vous pensez que.

Ce que je suis intéressé par des avis de personnes utilisant des langues différentes (nous sommes susceptibles d'offrir de l'API pour les personnes utilisant un certain nombre de plates-formes, notamment .NET, Java, ActionScript et JavaScript) sur web Api que vous pensez sont de bons exemples, et que vous avez eu de bonnes expériences avec.

Certains points que je voudrais couvrir:

  1. Vous préférez le SAVON type de services ou de REPOS/RPC ceux de style? Je soupçonne que les gens avec plate-forme de soutien (par exemple .NET, Java) préfère le SAVON et les personnes utilisant les langues sans support de plate-forme préfère les autres, mais je tiens à valider cette hypothèse.

  2. Faire vous vous souciez de savoir si une API est en fait Reposante ou si c'est un simple vieux type RPC HTTP GET/POST? Si oui, pourquoi s'en faire? Est-il plus important qu'une API décrit lui-même correctement (c'est à dire ne pas la prétention d'être Reposante si c'est de type RPC) que de savoir si c'est réellement l'un des deux?

  3. Nous avons besoin de vérifier qui est de l'utilisation du service. J'ai été à la recherche à la Amazon S3 authentification qui utilise un identificateur public et privé jeton qui est utilisé pour hacher les paramètres de la requête en vérification de jeton (c'est également semblable à flickr). Avez-vous utilisé ce type d'authentification avant, et comment avez-vous commencer? Existe-il des algorithmes de hachage vous trouvez un problème (c'est à dire pas pris en charge par votre plate-forme)? Préférez-vous envoyer la valeur de hachage dans un en-tête HTTP ou dans l'URI?

  4. Comment doit-gestion des versions-ils être gérés? Est-ce une bonne idée d'avoir un /v1/ type de sous-répertoire, afin que les futures versions peuvent être ajoutés à côté, ou voulez-vous faire quelque chose de différent, comme la version à la demande de la charge utile ou de la requête? Combien de temps vous attendez-vous à une version de l'API que tu avais construit contre pour être pris en charge pour l' (c'est à dire si la v2 a été introduite, quel serait votre espérance autour de la durée de vie de la v1).

Aussi, toutes les autres opinions et de points de couverture serait utile.

Je suis délibérément de rester vague sur le type réel de l'API, nous mettons en œuvre, comme je suis à la recherche d'une orientation générale en termes de ce que les gens pensent sont bonnes Api et les mécanismes de mise en œuvre, donc, ce post et ses réponses seront utiles à plus de gens dans l'avenir.


Remarque: j'ai cherché et ne peut pas trouver une question générique - ils tous semblent spécifiques à un certain type d'API - mais si c'est un doublon alors s'il vous plaît laissez-moi savoir. Aussi, si il devrait être de la communauté wiki (je pense que les gens devraient obtenir du crédit pour les réponses, donc je n'ai pas fait un seul) alors s'il vous plaît laissez-moi savoir et je vais le changer.

  • "Préférez-vous le SAVON type de services ou de REPOS/RPC style" devrait être "préférez-vous le SAVON/RPC type de services ou de REPOS ceux de style". Le SAVON est un exemple de la RPC concept XML sur HTTP. Le REPOS est bien plus subtile d'un concept.
  • Ne vois vraiment pas ce qui n'est pas constructif dans ce post. Comme question de fait, il est très utile pour moi aujourd'hui.Cela ne devrait pas avoir été fermé
InformationsquelleAutor Greg Beech | 2009-01-03