PHP SoapClient: получить список всех функций с параметрами

Я использую веб-службу SOAP от стороннего поставщика, и у нас возникают некоторые проблемы с функциями в службе, которые изменяются случайным образом (параметры переименовываются, параметры добавляются и удаляются). Очевидно, это не то, что мы хотим видеть, поэтому я пытаюсь написать сценарий, чтобы уведомлять меня всякий раз, когда что-либо изменяется в веб-сервисе.

Используя PHP SoapClient, я могу получить список всех функций в веб-сервисе, однако все функции перечисляют один параметр, который, по-видимому, является контейнером для остальных параметров. Я использую SoapClient в режиме WSDL, поэтому я думаю, что есть какой-то способ получить полный список параметров для каждой функции.

Любой совет?


person Brendon Dugan    schedule 01.11.2012    source источник
comment
когда вы говорите получить полный список параметров, вы хотите, чтобы это осталось за кадром, или вы хотите посмотреть на это? wsdl должен показать вам все это.   -  person Robert    schedule 01.11.2012
comment
Этот поставщик должен предлагать версионный API, чтобы было ясно, какой из них все еще поддерживается и как выглядит следующий. Поскольку это явно не так, я думаю, вы можете снять отпечатки пальцев только с WSDL.   -  person hakre    schedule 01.11.2012
comment
@Robert - я хочу создать автоматизированный способ документирования того, какие функции существуют и какие параметры им требуются в данный момент. Если мне нужно вручную проанализировать WSDL, я это сделаю, но я надеялся, что может быть более простой способ.   -  person Brendon Dugan    schedule 01.11.2012
comment
@hakre - Есть ли у вас какие-либо советы о том, как это сделать, сохранив более удобный для человека список, чем обычный WSDL?   -  person Brendon Dugan    schedule 01.11.2012
comment
В любом случае я не знаю, как получить параметры без использования wsdl, и если они обновят свой код, они должны предоставить вам обновления, особенно если они нарушают существующую функциональность. Это больше похоже на проблему процесса, чем на проблему разработки. Поэтому, чтобы ответить на ваш вопрос, вам нужно будет проанализировать wsdl, но не должен, чтобы поставщик сказал вам, что все меняется, и дал вам достаточно времени, чтобы настроить вашу систему, чтобы принять ее.   -  person Robert    schedule 01.11.2012


Ответы (1)


В соответствии с тем, что было сказано в некоторых комментариях выше, если вы не можете получить точное отражение методов/параметров для удовлетворения ваших потребностей от клиента SOAP, то, безусловно, ничто не мешает вам либо взять хеш сам WSDL и сравнение его с хэшем, который вы сохранили, чтобы увидеть, есть ли какие-либо изменения.

Если вы хотите получить более подробную информацию об изменениях, вы можете сделать еще один шаг и проанализировать WSDL с помощью некоторой библиотеки XML и сравнить узлы на наличие изменений.

person Mike Brant    schedule 01.11.2012