2009-09-21 10 views
0

Я использую nusoap lib с приложением cakephp для целей устаревания/совместимости, мне просто интересно, нужно ли вообще создавать экземпляр nusoap_server, я не могу понять какой-либо очевидной причины для этого, когда я могу просто выводить любые данные, отформатированные как xml nilly willy, без создания экземпляра сервера - возможно, это только для целей отладки?Необходимо ли создать экземпляр «SOAP-сервера»?

ответ

1

(я никогда не использовал nuSOAP, но я предполагаю, что это совершенно так же, как PEAR::SOAP, родной SoapServer расширения и Zend_Soap)

Ваш экземпляр сервера будет:

  • синтаксического анализа XML-данные SOAP, полученные вашим приложением, и отправить его в нужный класс/метод
  • инкапсулировать возврат этого метода в SOAP XML

Учитывая, насколько сложным является формат SOAP, я бы определенно не хотел его самостоятельно анализировать, и я бы не хотел перестроить некоторую строку SOAP, особенно если библиотека, которая может сделать это для меня, уже существует!

1

Это зависит от того, выполняете ли вы SOAP-вызовы или получаете вызовы SOAP.

Чтобы сделать их, вам нужно создать соответствующий клиент экземпляр, чтобы сделать обработку WDSL и ассемблировать XML.

Чтобы получить их, вам нужно создать сервер экземпляр и сказать ему, как направить различные вызовы.

Для вашего приложения вполне разумно только сделать один из них.

+0

im, просто пытаясь окутать голову, почему мне нужно использовать SOAP (или почему мои старшие разработчики говорят, что я должен), почему бы просто не вывести xml на основе URL, например REST, SOAP, похоже, слишком сложно ... – brndnmg

+0

SOAP - это протокол абзаца сообщений/RPC. Из-за этого это кажется большим и тяжелым. Если вы вписываетесь в среду, в которой уже используется SOAP, у вас действительно мало выбора. Кроме того, реализация SOAP на некоторых других платформах довольно проста и поэтому имеет тенденцию быть очевидным выбором. PHP, тем не менее, занимает немного больше подхода бит-n-штук, что делает его немного сложнее. – staticsan