Services RESTful - WSDL Équivalent
J'ai lu sur le REPOS et le SAVON, et de comprendre pourquoi la mise en œuvre de REPOS peut être bénéfique sur l'aide d'un protocole SOAP. Cependant, je ne comprends toujours pas pourquoi il n'y a pas le "WSDL" équivalent dans le RESTE du monde. J'ai vu des posts disant qu'il y a "pas besoin" pour le WSDL ou qu'elle est redondante Dans le RESTE du monde, mais je ne comprends pas pourquoi. N'est-il pas toujours utile de programmation pour la lier à une définition et à créer des classes de proxy au lieu de saisir manuellement le codage? Je ne veux pas entrer dans un débat philosophique, à la recherche de la raison pour laquelle il n'existe pas de fichier WSDL dans le REPOS, ou pourquoi il n'est pas nécessaire. Merci.
- J'ai la même question. Il semble à partir d'un client de perspective services restful sont beaucoup plus difficile à utiliser ensuite un document WSDL du service.
- Il me semble que si vous êtes d'exposer quelque chose de simple, alors vous n'avez pas besoin d'un WADL ou WSDL. Mais si vous êtes d'exposer quelque chose d'aussi complexe que SAP... je ne peux pas imaginer de ne pas avoir une sorte de réflexion et d'espace de noms pour gérer la pléthore de fonctionnalités.
- Ne pouvais pas le HTTP méthode des OPTIONS être considéré comme un "équivalent" comme il se doit de fournir des informations sur les méthodes et les paramètres requis pour toute action possible?
Vous devez vous connecter pour publier un commentaire.
La Application Web Langage De Description De (WADL) est essentiellement l'équivalent d'un fichier WSDL pour les services RESTful mais il y a eu une controverse en cours si quelque chose comme cela est nécessaire à tous.
Joe Gregorio a écrit un bel article à propos de ce sujet qui est intéressant à lire.
WSDL décrit les points de terminaison du service. RESTE les clients ne devraient pas être couplé à des points de terminaison de serveur (c'est à dire ne doit pas être au courant d'une Url à l'avance). RESTE les clients sont couplés sur les types de médias qui sont transférées entre le client et le serveur.
Il peut faire sens pour générer automatiquement les classes sur le client pour s'enrouler autour de la retourné types de médias. Cependant, dès que vous commencez à créer des classes de proxy à travers le service interactions de commencer à obscurcir la HTTP interactions et risque de dégénérer en arrière vers un modèle RPC.
RSDL vise à faire de repos, comme un hypermédia, en d'autres termes, il a plus d'informations qu'un descripteur de service comme WSDL ou WADL. Par exemple, il dispose de l'information sur la navigation, comme hypertextes et hyperliens.
Par exemple, étant donné un ressources actuelles, vous disposez d'un ensemble d'os des liens vers un autre ressources connexes.
Cependant, je n'ai pas trouver le Repos des Clients qui prend en charge ce format ou de Repos des Solutions de Serveur avec une fonctionnalité d'auto générer.
Je pense qu'il y a un long chemin pour une conclusion à ce sujet. Voir le code HTML longue histoire et le W3C vs Navigateurs lol.
Pour plus de détails au sujet Reste comme Hypermédia regarder: http://en.wikipedia.org/wiki/HATEOAS
Remarque : Roy Fielding a critiqué ces tendances dans les Api Rest sans hypermidia approche: http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven
Ma Conclusion : Maintenant, un jour, WADL est plus commun que le Repos et l'Intégration des Frameworks comme Chameau CXF prend déjà en charge WADL ( de générer et d'exploiter ), parce qu'il est semblable WSDL, donc plus facile à comprendre dans ce processus de migration ( SAVON pour les MAINS ).
Nous allons voir les prochains chapitres 😉
Tout à fait d'accord, c'est pourquoi j'ai personnellement utilisé Swagger.io
Donc, fondamentalement, je utiliser Swagger pour décrire mes modèles, les systèmes d'extrémité, etc, puis-je utiliser d'autres outils comme swagger-codegen pour générer les classes proxy au lieu de saisir manuellement à coder ça.
Voir aussi: RAML
Il y a un RSDL (reposant service description language) qui est l'équivalent de WSDL. L'URL ci-dessous décrit sa pratique http://en.wikipedia.org/wiki/HATEOAS et http://en.wikipedia.org/wiki/RSDL.
Le problème est que nous avons beaucoup d'outil pour générer du code à partir de wsdl pour java, ou l'inverse.
Mais je n'ai pas trouvé un outil pour générer du code à partir de RSDL.
WSDL est extensible pour permettre la description des points de terminaison et de leurs messages, indépendamment de ce que les formats de message ou les protocoles réseau sont utilisés pour communiquer
Cependant, RESTE utilise le protocole réseau en utilisant le protocole HTTP verbes et les URI pour représenter des objets dans l'état.
Langage wsdl vous dire à cet endroit, si vous envoyez ce message, vous devrez effectuer cette action et d'obtenir ce format en arrière.
En RESTE, si j'ai voulu créer un nouveau profil, je voudrais utiliser le verbe
POST
avec un JSON corps ou serveur http variables décrivant mon profil à l'URL/profile
POST
doit retourner un côté serveur ID généré en utilisant le code d'état201 CREATED
et l'en-têteLocation: *new_profile_id*
(par exemple 12345)Je pouvez ensuite effectuer des mises à jour de l'évolution de l'état de
/profile/12345
en utilisant le verbe HTTPPOST
, dire de changer mon adresse e-mail ou numéro de téléphone. Évidemment modification de l'état de l'objet distant.GET
serait de retour l'état actuel de la/profile/12345
PUT
est généralement utilisé pour le côté client ID généréDELETE
, évidentHEAD
, obtient le statut sans avoir à retourner le corps.Avec le RESTE, il devrait être auto-documenter par le biais d'un API et donc plus facile à utiliser.
C'est un excellent article sur le REPOS. - Il vraiment m'aider à comprendre aussi.
Spécification WSDL 2.0 a ajouté le support pour les services web REST trop. Le meilleur des deux mondes scénario. Le problème est WSDL 2.0 n'est pas largement pris en charge par la plupart des outils là-bas encore. WSDL 2.0 est recommandée par W3C, WSDL1.1 n'est pas recommandée par W3C, mais largement soutenue par les outils et les développeurs.
Ref:
http://www.ibm.com/developerworks/library/ws-restwsdl/
L'Application Web Langage de Description (WADL) est un vocabulaire XML utilisé pour décrire des services web RESTful.
Comme avec WSDL, un client générique peut charger un WADL de fichier et d'être immédiatement équipé d'accéder à toutes les fonctionnalités du service web correspondant.
Depuis RESTful services de simplifier les interfaces, WADL n'est pas aussi nécessaire à ces services WSDL est de style RPC SOAP services.