Ma question est nécessaire pour une compréhension de base desservices et plus spécifique En conjonction avec PHP P>
J'aimerais savoir s'il est nécessaire de disposer d'un fichier WSDL pour la création d'un service Web ou est-ce que juste quelque chose d'utilité à des tiers qui veulent accéder au service Web? En outre, il est généré automatiquement dans les environnements .NET, mais pour PHP, il est un peu plus difficile. P>
Quelles sont mes options? P>
La chose que je suis après est de créer une application JM2EE sur mon mobile qui envoie des données sur le site Web de temps à autre. J'ai lu quelque part que vous devez fournir les arguments lorsqu'il n'y a pas de fichier WSDL. Qu'est-ce que cela signifie par ça? et / ou quelles sont les implications de cela? p>
Merci d'avance, Richard P>
5 Réponses :
Documents de fichier WSDL dans une machine Lisible (XML) Format Quels sont les méthodes (et les procédés de méthodes) proposés par un service Web. Vous n'avez pas besoin d'un fichier WSDL si vous savez quelles sont les méthodes et arguments, bien que WSDL soit très bon d'avoir un moyen de rendre l'interface publique de service Web plus «contractifiée», si vous voulez. p>
au mieux de mes connaissances, la bibliothèque PHP n'a pas de fonctions pour générer automatiquement un fichier WSDL pour vous. P>
Mais si vous ne l'utilisez pas, cela ne subira pas de retard ni moins efficace?
Il semble que vous ayez raison à propos de WSDL, mais il existe des alternatives. Voir brainbell.com/tatudials/php/...
@Richard utilisant WSDL a tendance à être moins i> efficace. Ces fichiers peuvent devenir volumineux assez rapidement, de sorte que la récupération et le temps d'analyse deviennent non triviaux.
Toute vérification ou analyse d'analyse ne serait que des problèmes lorsque le WSDL est récupéré ou que je manque quelque chose? La plupart des outils SOAP ne lisent pas la WSDL à chaque fois que le service est appelé, mais une seule fois.
La prise en charge du service Web est intégrée à PHP5, votre meilleur départ est le Documentation . P>
J'aimerais savoir si c'est Nécasaire d'avoir un fichier WSDL pour le Création hors service Web P> blockQuote>
Non, ce n'est pas nécessaire (au moins, pas en php) em>: il aide les autres à savoir comment accéder à votre site Web (quelles méthodes, objets, ... doivent être utilisés) em>, mais un WS peut être appelé même s'il n'exporte pas un WSDL P>
Pour PHP, oui, il est un peu difficile d'obtenir un WSDL (de nombreuses classes ne les ont pas générées :-() em>; toujours, vous pouvez le generater avec un autre outil (il y a des outils dans Eclipse pour écrire des fichiers WSDL, par exemple). P>
Il y avait
poire :: savon code>
capable de Générez WSDL du code PHP (mais vous avez dû écrire de nombreuses lignes de code pour le faire correctement) - Considérant qu'il existe une classe incluse dans PHP 5 pour travailler avec du savon, je ne recommanderais pas d'utiliser celui-ci, de toute façon. p>Pour plus d'informations, vous pouvez consulter: P>
Eh bien, laissez-moi ajouter quelque chose à ce que j'ai dit: peut-être avec Zend_soap, vous pouvez générer une WSDL après tout; Voir Framework.zend.com/manual/fr/zend.soap.wsdl .html à ce sujet: "Le paquet Zend_SOAP_WSDL contient à la fois un analyseur et un constructeur de documents WSDL." (Je n'ai pas essayé, cependant, et je ne sais pas à quel point cela fonctionne)
Cela semblait être un hors des options limitées. Zend Studio est un logiciel payé. C'était un des raisons de dire ma question.
Je n'ai pas parlé de Zend Studio: j'ai parlé de Eclipse (qui est libre; ainsi que Eclipse PDT) et à propos de Zend Framework (qui est gratuit aussi). Zend Studio est un IDE qui coûte de l'argent, oui; Mais Zend Framework est un cadre PHP gratuit (coûts sans argent et licence BSD)
Désolé, devait rapidement donner une réponse. J'aime les commentaires où ils ont dit que je n'en ai pas besoin du tout. Me sauve du travail. C'est censé être un service qui n'est pas accessible au public de toute façon. Je dois faire une application dans Netbeans qui communiquera avec le Webservice. De cette façon, cela ne fonctionnera que si l'application est installée.
(pas de problème :-)) Eh bien, si vous pouvez faire ce que vous voulez, peut-être, oui, le savon est un peu beaucoup et compliqué (voudrais-je oser dire ballonné?); Mais cela peut être très utile lors de la communication lorsque d'autres langues / applications que vous n'avez rien à dire. Quoi qu'il en soit, amusez-vous ;-) (c'est toujours la partie la plus importante ^^)
Je n'ai pas inediedley ne voulait pas utiliser de savon à tous. Je faisais juste référence à la ne pas avoir à utiliser des fichiers WSDL. Je ne suis pas complètement hors du train avec du savon pour ma demande. Mais j'ai eu quelques suggestions sur la mise en place d'un service WebService qui vous repose. Mais je n'ai pas exploré ça trop encore.
Oh, désolé, je vous ai mal compris; Mon opinion est que si vous êtes celui qui utilise le WS, vous développez, vous n'avez pas besoin d'exporter son API. Donc, le savon en non-WSDL est OK (et le repos est trop). Néanmoins, vous devriez vraiment écrire quelque part ce que cette API est (ou, au moins, commencez-y à l'aide de phpdoc, comme requis par Zend_Soap_Server et Zend_Rest_Server).
Merci, je devrais lire le manuel que vous avez fourni. Vous savez pas sur les exigences pour donner des commentaires sur une sorte avec phpdoc.
Il y a une note sur Framework.zend.com/manual/fr/zend.soap .html disant "Vous devez décrire complètement chaque méthode à l'aide de la méthode DOCBLOCK si vous envisagez d'utiliser une fonctionnalité autodécover pour préparer le service Web correspondant WSDL" - peut-être pas toujours nécessaire, mais au moins dans certains cas; et l'écriture de phpdoc est définitivement quelque chose que vous devriez faire, surtout s'il s'agit d'un grand projet, ou un grand nombre de personnes travailleront.
Même si vous êtes le seul à utiliser le service, si vous vous attendez à ce que des outils connaissent le service (Netbeans, peut-être), vous avez besoin d'une WSDL. Si vous créez et que vous analysez le XML à la main, et si vous êtes le seul à accéder au service, et que vous n'aurez jamais accès au service, vous n'aurez plus besoin du WSDL.
Si vous créez à la fois le client et le service Web, il n'ya pas de besoin particulier de futz avec le savon, le WSDL ou l'un de ce jazz. P>
Utilisez simplement les bases du Web: le client peut utiliser pour aller chercher des informations et publier pour l'envoyer. Vous pouvez formater les données n'importe quand, mais JSON et XML sont des approches communes et bien définies. P>
Si vous souhaitez inspiration pour votre conception de l'API, consultez certains exemples populaires: P>
C'est suffisant pour vous aider à démarrer, mais si vous êtes curieux de la philosophie design, vous pouvez lire sur
Ok, je suis à nouveau confus, j'ai recommencé à lire des tutoriels Netbeans, car je souhaite envoyer des données GPS sur le site d'affichage. Un service Web semblait être la bonne façon de le faire. Quoi qu'il en soit, je tiens à développer ma connaissance des webservices afin que ce soit utile. Sinon, pour cela, alors pour autre chose. Merci pour les liens.
Avez-vous voulu dire que tous ces exemples d'exemple sont basés sur l'architecture de repos?
Salut, Richard. Il y a un tas de différentes manières de faire des services Web. L'utilisation du WSDL et du savon est d'une manière. Mais surtout si vous êtes déjà familiarisé avec la construction de choses sur le Web, une approche assez approfondie peut être beaucoup plus facile. Je ne sais pas à quel point toutes ces API sont reposantes; Google et Yahoo se lèvent beaucoup. Certains d'entre eux ont certainement des versions de repos et de savon. Mais Twitter et Flickr sont des exemples de repos assez bons. J'ai aussi oublié de mentionner Amazon; Beaucoup de leurs API sont de bons exemples de repos.
Merci, je dois absolument entrer dans cela. Je vais devoir revenir avec d'autres questions si j'en ai.
Certaines sources utiliseront le terme "Webservice" comme synonyme de savon. C'est un mal. Le savon est un protocole particulier - il est un moyen em> pour créer un service Web. Il y a d'autres technologies disponibles. En général Savap est la norme préférée avec Java et .NET, mais c'est une mauvaise coupe à l'extérieur de cette sphère. Si vous avez la possibilité, je vous suggère fortement que vous envisagez de prendre en compte XML-RPC (qui est plus simple et offre une meilleure prise en charge directe sur PHP) ou un service basé sur HTTP (également appelé reposé). P>
Comment voulez-vous dire, il est mieux soutenu par PHP. Parce que je pensais que c'était un prédéterminé des fonctions de savon natif comme éteint php5.xxx? Et ils vous envoient tous des données sur le protocole SLASH de couche HTTP?
Le protocole de savon est immensément complexe. L'extension de SOAP actuelle n'entraîne qu'un sous-ensemble (en particulier le côté serveur est plutôt inégalé). XML-RPC est un protocole beaucoup plus simple, de sorte que l'extension le couvre plutôt bien. Il est correct que le savon a évolué de XML-RPC, mais cela ne signifie pas que XML-RPC est obsolète.
Le protocole de savon n'est pas complexe. "Complexe" par rapport à quoi? Par rapport à TCP / IP? Et la complexité est généralement cachée par des outils. S'il n'y a pas d'outils libres pour masquer la formulaire "Complexité", PHP, je comprends pourquoi il est considéré comme "complexe".
Pas complexe? Vous vous moquez de moi. Avez-vous déjà essayé de mettre en œuvre contre elle? Le fait que vous ayez besoin d'envelopper le protocole dans une couche d'abstraction pour pouvoir l'utiliser, devrait être un indice à propos de quelque chose. Oui, de telles couches d'abstraction sont disponibles pour PHP - elles ne couvrent tout simplement pas toute la myriade de variations du protocole qui existe, et ils sont - non surprenants étant donné la complexité - pleine de bugs.