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": "название метода"
}Где serverName — ws.ucs.ru
Все 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 | Получить стоп лист из ресторана |
| GetMenuByParams | Запрос получения меню от агента |
| PushDishSettings | Запрос на редактирование параметров блюда |
| PushMenuSelectors | Запрос на сохранение селекторов меню (новых категорий и распределенных блюд по ним) |
| SetAlcoholCodes | Установка кодов алкоголя (AlcoholCodes) для блюд |
| SetGlobalTradeItemNumbers | Установка GTIN для блюд |
Заказ
| Запрос | Описание |
|---|---|
| GetOrder | Получить заказ |
| GetOrderState | Получить статус заказа |
| CancelOrder | Отменить заказ |
| CreateOrder | Создать заказ |
| PayOrder | Оплата заказа |
| CompleteOrder | Завершить заказ |
| AddPrepayOrder | Добавляет предоплату в указанном заказе |
| RemovePrepayOrder | Удаляет предоплаты в указанном заказе |
| GetOrderList | Запрос списка заказов с кассового сервера. Запрос доступен, только если есть разрешение в настройках ресторана в WsAdmin |
| PatchOrder | Изменение полей заказа без изменения состава заказа |
| PrintBill | Печать пречека |
| UndoBill | Отмена пречека |
| UpdateOrder | Обновить состав заказа в ресторане по идентификатору заказа и objectId |
| ValidateOrder | Валидация и расчет стоимости заказа в ресторане |
Рестораны
| Запрос | Описание |
|---|---|
| GetAgentInfo | Получение информации по агенту, установленному в ресторане |
| GetRestaurantAgents | Получить список агентов имеющих роли на ресторане |
| GetRestaurantConfig | Запрос метаданных для настройки ресторана |
| GetRestaurantInfo | Получить информацию по ресторану |
| GetRestaurantSystems | Получить список подключенных на ресторане систем |
| GetTableList | Возвращает список столов в ресторане |
| GetVoidReasons | Возвращает список доступных причин отмены заказа |
| GetEmployees | Запрос получения списка сотрудников |
| SetEmployee | Запрос на обновление данных о сотруднике или на добавление данных о новом сотруднике |
| RemoveEmployee | Запрос на удаление данных о сотруднике |
Интеграция с Store House
| Запрос | Описание |
|---|---|
| ShDocDashingReport | Создание расходной накладной |
| ShDelDocDashingReport | Удаление расходной накладной |
| ShDocReceivingReport | Создание приходной накладной |
| ShDelDocReceivingReport | Удалении приходной накладной |
| ShGetCorrs | Получение списка корреспондентов |
| ShGetGoodGroups | Получение списка товаров и групп товаров |
| ShGetGoods | Получение списка товаров |
| ShGetMUnits | Получение единиц измерения |
| ShGetStores | Получение списка складов |
| ShRepBillOfBalance | Запрос отчета «Ведомость остатков» |
| ShAlcListPrepare | Получение cписка технологических карт по алкоголю |
| ShAlcMenuPrepare | Получение технологических карт по алкоголю для меню |
| ShExecuteProcedure | Выполнить процедуру Store House из списка разрешенных |
| ShGetReceivingReports | Получение списка приходных накладных за период |
Reporting (Только для агрегатора "RkReports")
Запрос | Описание |
|---|---|
| CreateOrUpdateSqlProc | Создает или обновляет указанную процедуру в базе |
| IsSqlProcExist | Проверяет создана ли указанная процедура в базе |
| RunSqlProc | Выполняет указанную процедуру на базе и возвращает результат выполнения. |
Другое
| Запрос | Описание |
|---|---|
| GetTaskResponse | Получение ответа по задаче |
| ExecuteRk7Query | Выполнение произвольной команды RK7 XML Interface |
| GetAgentList | Получить список агентов установленных в ресторанах с информацией об их активности |
| RunPluginCommand | Отправка команды плагину Агента |
| ServiceGetMultiAgentInfo | Получить параметры мультиагента |
| ServicePushAgentSettings | Отправить агенту новые настройки (доступ к методу ограничен) |
| ServiceServerBenchmark | Benchmark для серверного окружения |
Запрос к очереди сообщений
События
События сообщают внешнему сервису об изменениях, производимых на внутренних сервисах ресторана (касса, склад).
Получение событий
Получать события можно подключившись к очереди сообщений
Пример ответа с событиями
{
"eventResponse": {
----------agent event response json---------
},
"responseCommon": {
"taskType": "Event",
"objectId": int
},
"error": {
----------error response json---------
}
}