2009-11-24 8 views
23

Lorsque je veux trouver un "Big" service Web (WS - */WSDL) de fonctionnalités requises, je peux simplement google pour ".... filetype: wsdl" parce que Google indexe aussi les définitions WSDL. Ou je peux simplement utiliser certains registres qui ont déjà exploré le Web pour les définitions WSDL pour moi, par exemple. SeekDa.com ou ServiceFinder. Lorsque je souhaite trouver le service Web RESTful (API Web RESTful), je ne peux compter que sur la communauté, car il n'est pas possible de distinguer l'URI du service Web RESTful des autres ressources Web (par exemple, les URL des sites Web). Tout crawler ciblé ne peut pas dire à 100%: c'est l'URI du service Web RESTful. Donc, je viens par exemple au ProgrammableWeb.com et j'espère que quelqu'un a déjà utilisé/trouvé le service que je cherche et l'ai enregistré là-bas.Comment puis-je découvrir les services Web RESTful?

Récemment, je cherchais le service Web pour l'expansion des abréviations. Je ne pouvais pas le trouver dans des portails comme ProgrammableWeb, parce que personne ne l'a mis là. Finalement, j'ai été forcé de naviguer à travers plusieurs sites de dictionnaires d'abréviations, de creuser et de forer là-bas et j'ai finalement trouvé l'API du service Web Abbreviations.com sous forme RESTful. Cela m'a pris beaucoup de temps!

Existe-t-il un autre moyen de découvrir les services Web RESTful sur le Web?

Répondre

9

L'idéal REST est que les services sont aussi consommables que les pages Web, ils n'ont pas besoin de registres. [Je dois avouer que je ne comprends pas complètement les implications de ce monde RESTful, pas de WSDL, aucun registre ne ressemble à un vélo sans stabilisateur.]

Dans l'ancien Web, pré-Google, comment avons-nous trouver des pages? Effectivement le bouche-à-oreille et quelques points de départ clés. Les services REST autant que je peux voir sont à peu près dans la phase de pré-Google. Je ne suis pas d'accord "qu'il n'est pas possible de faire la distinction entre l'URI du service Web RESTful et d'autres ressources Web" - si nous suivons le lien nous obtenons certains types d'application de contenu/xml et application/json serait jolie des indicateurs forts ne le feraient-ils pas?

+0

Merci. Je n'ai pas considéré les types MIME de la réponse du service :-) – dzieciou

+0

Juste un commentaire: vous ne savez jamais si application/xml a été généré sur appel (comme une réponse de service) ou son un document XML statique. Donc, ce n'est que l'un des indicateurs possibles. D'autres suggestions? – dzieciou

+1

Vous n'avez pas besoin de le savoir. Provded il satisfait l'URI vous ne pouvez pas demander comment il devrait être servi. Certaines réponses pourraient être précalculées et mises en cache. – djna

7

Il existe un fichier de type WSDL pour les services Web REST: il s'appelle WADL.

+2

Merci. C'est une bonne idée en supposant que les services Web RESTful sont décrits avec WADLs. Mais actuellement, c'est juste une idée, pas couramment les pratiques. Revenons donc au monde réel: Comment puis-je trouver un service Web RESTful intéressant MAINTENANT? – dzieciou

+0

sauf si vous les connaissez, vous ne pouvez pas. C'est ce que WADL essaie de résoudre. –

+1

OK. BTW, connaissez-vous des recherches sur l'extraction des définitions WADL à partir du document de l'API, des pages Web associées? Des essais?Ce serait une bonne façon de générer des WADL semi-automatiquement et de fournir une transition en douceur (évolution au lieu de révolution) à partir du manque actuel d'interfaces pour les services Web RESTful. – dzieciou

8

Il existe une convention (recommandée par exemple en REST API Design Handbook) pour exposer un point de terminaison/api à la racine de votre service. Cela renvoie une réponse XML ou JSON contenant les ressources "enfant" prises en charge par votre service, par exemple./api/products

+1

Avez-vous un lien vers ce guide? Cela améliorerait grandement votre réponse ... –

1

SoapUI peut maintenant découvrir les services REST. Il fonctionne comme un proxy, notant toutes les demandes/réponses qui transitent. Ayant des demandes et des réponses SoapUI recrée des descriptions/définitions des services. Maintenant les définitions peuvent être stockées dans WADL et WSDL formats (comme WSDL et XML-Schema dans le monde XML). Il peut également être stocké au format Swagger. Je préfère Swagger. Swagger peut être stocké dans SwaggerHub à partir de SoapUI, qui est comme GitHub pour le code source. SwaggerHub est l'un des nombreux systèmes de gestion d'API.

Questions connexes