Мой вопрос необходим для базового понимания веб-сервисов и более конкретно в сочетании с php
Я хотел бы знать, если требуется наличие wsdl-файла для создания веб-службы или это то, что полезно для сторонних разработчиков, которые хотят получить доступ к веб-сервису? Кроме того, он генерируется автоматически в среде .net, но для php это немного сложнее.
Какие у меня варианты?
То, что я делаю, это создать приложение jm2ee на моем мобильном устройстве, которое время от времени отправляет данные в веб-службу. Я где-то читал, что вам нужно предоставить аргументы, когда нет wsdl-файла. Что подразумевается под этим? и / или каковы последствия этого?
Спасибо, adv, Ричард
Я хотел бы знать, если нет необходимости иметь wsdl-файл для создания веб-службы
Нет, это не обязательно (по крайней мере, не в PHP) : это помогает другим узнать, как получить доступ к вашему webservice (какие методы, объекты, … следует использовать) , но WS можно вызвать, даже если он не экспортировать WSDL
Для PHP, да, немного сложно получить WSDL (многие классы не генерируют их :-() , но вы можете создать его другим инструментом (например, в Eclipse есть инструменты для записи файлов WSDL) ,
Был PEAR::Soap
который смог генерировать WSDL из PHP-кода (но вам нужно было записать много строк кода, чтобы получить его правильно) – учитывая, что для работы с SOAP есть класс, включенный в PHP 5, В любом случае, рекомендуем использовать этот.
Для получения дополнительной информации вы можете посмотреть:
SoapServer
; особенно если вы посмотрите на документацию SoapServer::__construct
, вы заметите, что она может работать как в режиме WSDL, так и в режиме, SoapServer::__construct
от WSDL Zend_Soap
Если вы создаете как клиент, так и веб-сервис, то нет необходимости в futz с SOAP, WSDL или любым из этих джазов.
Просто используйте основы Интернета: клиент может использовать GET для извлечения информации и POST для ее отправки. Вы можете форматировать данные по своему усмотрению, но JSON и XML являются общими, четко определенными подходами.
Если вы хотите вдохнуть свой дизайн API, ознакомьтесь с некоторыми популярными примерами:
Этого достаточно, чтобы вы начали, но если вам интересно о философии дизайна, вы можете прочитать презентацию State Transfer или REST.
Документы WSDL-файла в машиносчитываемом формате (XML) определяют методы (и аргументы для методов), предлагаемые веб-службой. Вам не нужен файл WSDL, если вы знаете, что такое методы и аргументы, хотя WSDL очень хорош для того, чтобы как можно больше использовать «публичный интерфейс» веб-сервиса.
Насколько мне известно, библиотека PHP не имеет функций для автоматического создания WSDL-файла для вас.
Поддержка веб-сервисов встроена в php5, наилучшим исходным местом является документация .
Некоторые источники будут использовать термин «вебсервис» как синоним SOAP. Это неправильно. SOAP – это конкретный протокол. Это один из способов создания веб-сервиса. Существуют и другие технологии. В общем, SOAP является предпочтительным стандартом с Java и .net, но он плохо подходит для этой сферы. Если у вас есть этот параметр, я бы настоятельно рекомендовал рассмотреть xml-rpc (что проще и имеет лучшую прямую поддержку php) или HTTP-службу (также называемую REST).