Периодически встречаются контрагенты, предоставляющие API, реализованные по спецификации JSON-RPC.
Подробнее о спецификации можно почитать здесь: https://ru.wikipedia.org/wiki/JSON-RPC
Данная разработка позволяет сосредоточиться на бизнес-логике, не вникая в детали спецификации.
Состав конфигурации
В конфигурацию включено две подсистемы:
- JsonRPC — собственно реализация спецификации. Содержит модули JsonRPC и JsonRPCПереопределяемый;
- JsonRPCDemo — примеры: вызов внешнего API и реализация http-сервиса для предоставления собственного API в данной спецификации.
Собственный JSON-RPC API может понадобиться, если контрагент будет выполнять обратные вызовы (отправку уведомлений).
Описание интерфейса модуля JsonRPC
- Функция ВызватьМетод(HTTPСоединение, АдресРесурса, ИмяМетода, Параметры = Неопределено, Результат, ВерсияПротокола = "2.0")
Функция возвращает истину при успешном вызове метода и ложь в случае ошибки.
Описание параметров:
- HTTPСоединение — настроенное (хост, авторизация и т.п.) соединение с API контрагента;
- АдресРесурса — адрес ресурса API;
- ИмяМетода — имя метода API;
- Параметры — структура для передачи именованных параметров или массив для передачи неименованных параметров. Может отсутствовать;
- Результат — выходной параметр, результат работы метода или описание ошибки.
- Функция ОтправитьУведомление(HTTPСоединение, АдресРесурса, ИмяМетода, Параметры = Неопределено, ВерсияПротокола = "2.0")
Функция возвращает истину при успешной отправке уведомления (вызове метода, не возвращающего результат) и ложь в случае ошибки.
- Функция ВыполнитьМетод(HTTPСервисЗапрос, Менеджер)
Функция выполняет метод JSON-RPC API и возвращает сформированный HTTPСервисОтвет. Вызывается из обработчика метода http-сервиса. Предназначена для реализации собственного JSON-RPC API over http.
Описание параметров:
- Менеджер — Общий модуль, реализующий API. Интерфейс модуля:
- Функция МетодRpcСуществует(ИмяМетода)
Возвращает булево.
- Функция ВыполнитьМетодRpc(ИмяМетода, Параметры, КодОшибки)
Возвращает результат вызова метода при успешном вызове или устанавливает выходной параметр КодОшибки.
Модуль JsonRPCПереопределяемый
Предназначен для подключения логирования.
Протестировано
Разработка протестирована на релизах платформы 8.3.10.2561, 8.3.10.2772, 8.3.13.1513.