Я пытался найти хорошую форму RPC для стандартизации, но до сих пор я наткнулся на тонну стен и задавался вопросом, каково было представление сообществ stackoverflow.
Мой идеальный RPC мог бы обеспечить следующее:
- Довольно широкая поддержка на других языках, так как людям не нужно писать собственный стек для использования нашего сервера
- Подтверждение ввода
- В идеале, какой-то способ превратить вышеуказанную проверку ввода в какую-то автоматизированную документацию для распространения
- Чистый и поддерживаемый код
Я фанат каталитического фреймворка и предпочел бы придерживаться его, но если есть явно лучшая альтернатива для RPC-серверов, я тоже буду к этому открыт.
До сих пор я смотрел на следующее:
Catalyst :: SOAP Controller ::
Не поддерживает возврат сложных структур данных, только строка («литералы»). Скорее всего, я мог бы сериализовать данные, но это выглядит очень глупо. Он также позволяет вам возвращать предварительно сформированный объект XML, но я не смог заставить его работать, и похоже, что для его работы вам потребуется заново создать много структуры данных SOAP.
Мне действительно нравится идея WSDL, но сложность общей спецификации также заставляет меня задуматься о том, насколько хорошей будет поддержка общения с другими языками.
Пользовательский POSTing XML-контроллер на основе
Мы попытались откатить свои собственные вручную, аналогично тому, как мы видели, как два других проекта делали это недавно, где есть URL-адрес рассылки, на который вы отправляете XML. Это позволяет вам проверять / документировать XSD, но требует создания гораздо большего количества кода, чем мы хотим поддерживать на данном этапе.
Catalyst :: Plugin :: Server :: XMLRPC
Выдал предупреждение об использовании устаревшего метода, который будет удален в будущей версии Catalyst.
Нет проверки ввода или создания документа, но в остальном лучшее, что я нашел
JSONRPC
Выглядит очень похоже на XMLRPC, только модуль фактически обновлен. Я, вероятно, пойду с этим дальше, если кто-то не предложит что-то лучшее
Также есть два разных модуля для катализатора, которые делают JSONRPC