XMLRPC - сервер Python, клиент PHP. Нет консистенции?

В настоящее время я пытаюсь создать интерфейс управления веб-базой для кластера серверов Linux, на которых запущена специальная служба. Идея состоит в том, что веб-сайт управления может RPC кластеров для сбора информации, выполнения задач настройки и т. Д.

У меня есть скрипт XMLRPC Python Server, и я написал базовый клиент XMLRPC на PHP. Все это работает, но у меня возникают серьезные проблемы с попыткой получить последовательные ответы от вызовов методов - иногда я получаю массив XML до n-й глубины в зависимости от многословности вывода команды, которую я запускаю, иногда это структура XML. , а иногда просто старое значение. Тогда у меня есть ошибки, с которыми нужно иметь дело - похоже, в стандарте XMLRPC есть структура Fault со значениями faultCode и faultString, которыми она отвечает, и это здорово, потому что это аккуратно, и я могу вытащить эти данные с помощью указанного ключа в XML. Но вы получаете эту структуру только в том случае, если ошибка возникает из самой оболочки (например, если у вызываемой команды был неправильный аргумент), тогда как ошибка, исходящая из команды, должна быть просто обычным ответом XML.

Как я могу написать надежную веб-службу на основе столь разнообразных ответов от сервера XMLRPC? Что я действительно хотел бы сделать, так это получать один и тот же ответ XML-структуры каждый раз с одними и теми же ключами (returnCode (0 = успех,> 1 = ошибка), returnValue / s).

Спасибо за любой совет.


person S.Richmond    schedule 17.01.2011    source источник
comment
amp-protocol.net   -  person nosklo    schedule 17.01.2011
comment
Ах, спасибо. Этот протокол кажется довольно хорошим, я буду исследовать дальше.   -  person S.Richmond    schedule 18.01.2011


Ответы (1)


Может быть, начать с существующего клиента XML / RPC и позволить клиенту выполнять легкую работу с протоколом. В Zend Framework есть Zend\XmlRpc, но есть и отдельные клиенты, такие как fxmlrpc.

person Lars Strojny    schedule 30.03.2013