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 | Получить список агентов установленных в ресторанах с информацией об их активности |
GetConfigForReporting | Возвращает набор текущих параметров с сервера справочников |
RunPluginCommand | Отправка команды плагину Агента |
ServiceGetMultiAgentInfo | Получить параметры мультиагента |
ServicePushAgentSettings | Отправить агенту новые настройки (доступ к методу ограничен) |
ServiceServerBenchmark | Benchmark для серверного окружения |
Запрос к очереди сообщений
События
События сообщают внешнему сервису об изменениях, производимых на внутренних сервисах ресторана (касса, склад).
Получение событий
Получать события можно подключившись к очереди сообщений
Пример ответа с событиями
{ "eventResponse": { ----------agent event response json--------- }, "responseCommon": { "taskType": "Event", "objectId": int }, "error": { ----------error response json--------- } }