XMLRPC - Python-сервер, PHP-клиент.Нет постоянства? - PullRequest
1 голос
/ 17 января 2011

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

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

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

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

1 Ответ

1 голос
/ 30 марта 2013

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

...