Нужно ли иметь файл wsdl для создания веб-сервиса в php? - PullRequest
7 голосов
/ 20 июля 2009

Мой вопрос нужен для базового понимания веб-сервисов и более конкретно в сочетании с php

Я хотел бы знать, есть ли необходимость иметь файл wsdl для создания из веб-сервиса или это просто то, что полезно сторонним разработчикам, которые хотят получить доступ к веб-сервису? Кроме того, он генерируется автоматически в среде .net, но для php это немного сложнее.

Какие у меня варианты?

Я хочу создать на своем мобильном телефоне приложение jm2ee, которое время от времени отправляет данные в веб-службу. Я где-то читал, что вы должны предоставить аргументы, когда нет файла wsdl. Что подразумевается под этим? и / или каковы последствия этого?

Спасибо за объявление, Ричард

Ответы [ 5 ]

5 голосов
/ 20 июля 2009

Я хотел бы знать, если это необходимо иметь файл WSDL для создание из веб-сервиса

Нет, в этом нет необходимости (по крайней мере, не в PHP) : это помогает другим узнать, как получить доступ к вашему веб-сервису (какие методы, объекты, ... следует использовать) , но WS можно вызвать, даже если он не экспортирует WSDL

Для PHP, да, немного трудно получить WSDL (многие классы не генерируют их :-() ; тем не менее, вы можете сгенерировать его с помощью другого инструмента (есть инструменты в Eclipse для записи WSDL-файлов, например).

Был PEAR::Soap, который смог сгенерировать WSDL из кода PHP (но вам нужно было записать много строк кода, чтобы получить его правильно) - учитывая, что в PHP 5 есть класс чтобы работать с SOAP, я бы не советовал использовать этот.

Для получения дополнительной информации вы можете посмотреть:

  • SoapServer; особенно, если вы посмотрите на документацию SoapServer::__construct, вы заметите, что она может работать как в режиме WSDL, так и в режиме без WSDL
  • Zend_Soap
3 голосов
/ 20 июля 2009

Если вы создаете и клиент, и веб-сервис, то нет особой необходимости работать с SOAP, WSDL или любым другим из этого джаза.

Просто используйте основы Интернета: клиент может использовать GET для получения информации и POST для ее отправки. Вы можете форматировать данные любым удобным вам способом, но JSON и XML являются распространенными, четко определенными подходами.

Если вы хотите получить вдохновение для своего дизайна API, посмотрите несколько популярных примеров:

Этого достаточно, чтобы начать работу, но если вам интересно узнать философию дизайна, вы можете прочитать о Передача репрезентативного состояния или REST.

1 голос
/ 20 июля 2009

Документы файла WSDL в машиночитаемом (XML) формате, что методы (и аргументы для методов), предлагаемые веб-сервисом. Вам не нужен файл WSDL, если вы знаете, что такое методы и аргументы - хотя WSDL очень хорошо иметь в качестве средства, позволяющего сделать публичный интерфейс веб-службы более «сжатым», если хотите.

Насколько мне известно, библиотека PHP не имеет функций для автоматического создания файла WSDL для вас.

0 голосов
/ 20 июля 2009

В некоторых источниках термин «веб-сервис» используется как синоним SOAP. Это неправильно. SOAP - это особый протокол - это один способ создания веб-службы. Есть и другие доступные технологии. В целом SOAP является предпочтительным стандартом в Java и .net, но он плохо подходит за пределами этой сферы. Если у вас есть такая возможность, я настоятельно рекомендую вам рассмотреть либо xml-rpc (который проще и имеет лучшую прямую поддержку php), либо службу на основе http (также называемую REST).

0 голосов
/ 20 июля 2009

Поддержка веб-сервисов встроена в php5, лучше всего начинать с документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...