White Server API v2
Введение
В статье описан White Server API v2
Обратите внимание
Интеграция платная. Для ее использования требуется купить лицензию.Авторизация
Для авторизации используется токен. Для того, чтобы получить токен необходимо:
- Отправить запрос на интеграцию по адресу integrations@rkeeper.ru
- Заполнить анкету интегратора
- Получить ключ авторизации для White Server API.
Передавать токен необходимо в заголовке AggregatorAuthentication.
Общее описание
Мы используем JSON-RPC. Запросы осуществляются с помощью HTTP методом POST.
Название вызываемого метода передается в теле запроса. Сервер возвращает ответ с http статус 200 Ok.
POST https://{{serverName}}/wsserverlp/api/v2/aggregators/Create { "taskType": "название метода" }
Все json запросы должны быть в кодировке UTF-8.
Существует несколько типов запросов:
Тип запроса | Как работает? | Пример команды |
---|---|---|
Cинхронный | HTTP Response непосредственно возвращает результат команды | |
Асинхронный | HTTP Response возвращает taskGuid (идентификатор команды) Сценарий: 1) Агрегатор отправляет команду на Whiteserver, в ответе приходит taskGuid. 2) Whitesever пересылает запрос в ресторан. 3) После выполнения результат приходит на WhiteServer. 4) Агрегатор может получить результат с WhiteServer двумя способами a) Запросить командой GetTaskResponse (указав taskGuid) b) Подключиться к очереди команд Whiteserver по long polling и ожидать поступление ответов по командам (ответ содержит taskGuid) | GetStopList, GetOrderState |
Ответ на асинхронный запрос можно получить 2 способами:
методом GetTaskResponse - получаете ответ по taskGuid
через запрос к очереди сообщений
Описание методов
Описание общих параметров запросов к Whiteserver | ||||
Параметр | Тип | Обязательный | Описание | Значение |
---|---|---|---|---|
async | - | Асинхронный вызов метода. Допустимо использовать один из: синхронный, либо асинхронный | ||
objectId | int | да | Код ресторана в системе лицензирования | Присутствует во всех методах, кроме GetAgentList |
sync | - | Синхронный вызов метода (допустимо использовать один из: синхронный, либо асинхронный) | ||
systemName | string | нет | Указание конкретной подключенной системы для которой выполняется запрос | Присутствует во всех методах, кроме GetAgentList |
timeout | int | - | Время ожидания ответа от агента в секундах | по умолчанию 120 секунд, максимальное 180 секунд |
Меню, стоп-лист
Запрос | Описание |
---|---|
GetMenu | Получить меню |
UpdateMenu | Запрос обновления меню вне расписания |
GetStopList | Получить стоп лист |
Заказ
Запрос | Описание |
---|---|
GetOrder | Получить заказ |
GetOrderState | Получить статус заказа |
CancelOrder | Отменить заказ |
CreateOrder | Создать заказ |
PayOrder | Оплата заказа |
Рестораны
Запрос | Описание |
---|---|
GetAgentInfo | Получение информации по агенту, установленному в ресторане |
Интеграция с Store House
Запрос | Описание |
---|---|
ShDocDashingReport | Создание расходной накладной |
ShDelDocDashingReport | Удаление расходной накладной |
ShDocReceivingReport | Создание приходной накладной |
ShDelDocReceivingReport | Удалении приходной накладной |
ShGetCorrs | Получение списка корреспондентов |
ShGetGoodGroups | Получение списка товаров и групп товаров |
ShGetGoods | Получение списка товаров |
ShGetMUnits | Получение единиц измерения |
ShGetStores | Получение списка складов |
ShRepBillOfBalance | Запрос отчета «Ведомость остатков» |
Другое
Запрос | Описание |
---|---|
GetConnectedSystems | Получение информации о подключенных к агенту системах и проверка их доступности |
GetTaskList | Получить список задач |
GetTaskResponse | Получение ответа по задаче |
Запрос к очереди сообщений
Правила сериализации/десериализации json
Правила сериализации/десериализации json
События
События сообщают внешнему сервису об изменениях, производимых на внутренних сервисах ресторана (касса, склад).
Получение событий
Получать события можно подключившись к очереди сообщений
Пример ответа с событиями
{ "eventResponse": { ----------agent event response json--------- }, "responseCommon": { "taskType": "Event", "objectId": int }, "error": { ----------error response json--------- } }