| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Простой soap приемник |
| Автор: Su_ 7.5.2013, 13:25 | ||
| Всем доброго дня! До сего работал с REST и проблем не знал, но понадобилось разбирать с протоколом SOAP. Причем soap используют только как транспорт для данных. Есть wsdl файл описывающий типы, сообщение и т.д. Где можно найти примере простого Soap приемника строящегося на базе wsdl? Есть пример простого сервера:
Что он должен делать? |
| Автор: Sanchezzz 7.5.2013, 14:22 | ||
$server->handle() Сеттер параметр это переопределение обработчик если не задан то транспортный уровень работает по умолчанию SoapServer::__doRequest, его также можно переопределить через наследование класса |
| Автор: Su_ 7.5.2013, 14:40 | ||||
| Спасибо, т.е. как я понял по сути в классе ValueService нужно описать методы которые могут придти от soap клиента? К примеру в wsdl есть тег binding и в нем:
Получается если мы в классе ValueService создам метод publishIncident
То при обращение к такому серверу soap клиента , будет исполнит метод класса ValueService? И еще вопрос если позволите, как получить тело soap запроса, т.е. по сути xml. Т.е. handle ждет на 80 или 8080 порту клиента, к нему приходит пакет, в теле которого xml (soap) как это xml захватить и например записать в файл? |
| Автор: Su_ 7.5.2013, 19:20 | ||
Я так понимаю soap можно использовать как RPC так и просто по передаче данных. В частности клиент может сам посылать данные на сервер? Т.е. клиент вызывает url и передает в пакете данные в формате soap. Как эти данные на сервере сохранить в файл например? |
| Автор: Fortop 8.5.2013, 17:22 | ||
Можно, но неэффективно. Слишком большой оверхед для всего лишь передачи данных. Но тебе же не нужен весь soap-пакет Тебе нужны лишь данные, которые пришли в нем Пишешь метод/функцию, которая будет сохранять полученные данные в файл. И клиентом шлешь данные именно этому методу. Если ты не планируешь работать кроссплатформенно, то посмотри реализацию Zend_Soap_Server/Zend_Soap_Client Они избавят тебя от необходимости написания правильного wsdl Если в планах взаимодействие с .net/java тогда можешь погружаться в спецификации Добавлено через 53 секунды P.S. по указанной ссылке на php.net есть информация как получить доступ к raw данным soap-пакета |