Введение

В статье описан White Server API v2

Авторизация

Для авторизации используется токен. Он действителен для набора ресторанов с определенными действиями. Токен можно получить самостоятельно в системе l.ucs.ru из сгенерированной лицензии вашего объекта для агрегатора в поле «Лицензия»

Передавать токен необходимо в заголовке 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 способами:

  1. методом GetTaskResponse - получаете ответ по taskGuid

  2. через запрос к очереди сообщений

Описание методов

Меню, стоп-лист

Запрос

Описание

GetMenuПолучить меню
UpdateMenuЗапрос обновления меню вне расписания
GetStopListПолучить стоп лист

Заказ

ЗапросОписание
GetOrderПолучить заказ
GetOrderStateПолучить статус заказа
CancelOrderОтменить заказ
CreateOrderСоздать заказ
PayOrderОплата заказа

Рестораны

ЗапросОписание
GetObjectsПолучить список объектов
GetAgentInfo

Получение информации по агенту, установленному в ресторане

Интеграция с Store House

ЗапросОписание
ShDocDashingReportСоздание расходной накладной
ShDelDocDashingReport

Удаление расходной накладной

ShDocReceivingReportСоздание приходной накладной
ShDelDocReceivingReportУдалении приходной накладной
ShGetCorrsПолучение списка корреспондентов
ShGetGoodGroupsПолучение списка товаров и групп товаров
ShGetGoodsПолучение списка товаров
ShGetMUnitsПолучение единиц измерения
ShGetStoresПолучение списка складов
ShRepBillOfBalance

Запрос отчета «Ведомость остатков»

Другое


ЗапросОписание
GetConnectedSystemsПолучение информации о подключенных к агенту системах и проверка их доступности
GetTaskListПолучить список задач
GetTaskResponseПолучение ответа по задаче

Запрос к очереди сообщений

Очередь сообщений

Правила сериализации/десериализации json

Правила сериализации/десериализации json

События

События сообщают внешнему сервису об изменениях, производимых на внутренних сервисах ресторана (касса, склад).

На события надо подписываться - выполнить команду SubscribeToEvents.

Типы подписок:

NewOrderподписка на создание новых заказов (на кассе появился новый заказ)
CloseOrderподписка на закрытие заказа (заказ выполнен и закрыт)
CancelOrderподписка на отмену заказов
ChangeOrderподписка на изменение заказов (состав заказ изменен, состав гостей изменен)


Посмотреть список своих подписок GetListOfSubscriptions

Отписаться от событий UnSubscribeToEvents

Получение событий

Получать события можно подключившись к очереди сообщений

Пример ответа с событиями

{
  "eventResponse": {
  ----------agent event response json---------
  },
  "responseCommon": {
    "taskType": "Event",
    "objectId": int
  },
  "error": {
      ----------error response json---------
  }
}

Коды ошибок

Коды ошибок