Назначение

Данный протокол предназначен для интеграции с:

  • ERP;
  • товаро-учётные системы;
  • CRM;
  • CDI-MDM;
  • ETL-инструменты BI-систем;
  • backend-сервера мобильных приложений;
  • backend-сервера личных веб-кабинетов корпоративных порталов.

Жизненный цикл документа

Для внутреннего использования.

Разработчик LOYA оставляет за собой право в изменении данного описания с целью внесения уточнений, исправлений и устранения противоречивых данных.

Общие сведения

LOYA в контексте данного описания является поставщиком REST-сервисов и представляет собой web-сервер.

LOYA – это система с сервисно-ориентированной архитектурой и открытым REST-протоколом, который не накладывает никаких ограничений на последовательность вызовов (state-less протокол), но при этом и не учитывает специфических особенностей REST-клиентов (товаро-учётная система, моб.приложение и веб-кабинет).

Для одной бизнес-транзакции, например, регистрация нового покупателя в личном кабинете, REST-клиент может отправлять на сервер LOYA несколько REST-команд:

  • создать покупателя
  • создать карту
  • привязать карту к покупателю

Не накладывается никаких ограничений, ни на перечень данных команд, ни на последовательность вызовов. Результат работы бизнес-транзакций REST-клиента целиком и полностью является зоной ответственности разработчиков данного REST-клиента. Разработчик LOYA, при этом, несомненно, несёт ответственность за работу REST-API, как такового, в отрыве от бизнес-логики того или иного REST-клиента.

Также важно понимать, что LOYA – это сервер для корпоративных backend-серверов соответствующих систем. Т.е. непосредственное подключение к серверу LOYA мобильных приложений, АРМ менеджеров-категорийщиков, кластеров веб-кабинетов, прямых AJAX-запросов из браузеров личных кабинетов и т.п. - категорически не допускается. Допускается обмен данными только между backend-серверами.

Очевидно, что REST-протокол имеет транспортный уровень http, который не содержит элементов гарантированной доставки пакетов прикладного протокола. Если допускается использование ненадежных каналов связи, то отказоустойчивость и гарантия доставки прикладных пакетов должна решаться соответствующими REST-клиентами. Для этого LOYA имеет полный набор CRUD-операций по каждому критичному ресурсу (товары, клиенты, карты и т.п.).

Величина пропускной способности, допустимые задержки в сети, частота и длительность разрывов – лежит в рамках зоны ответственности разработчиков REST-клиента и внутренних ИТ-служб, обслуживающих инфраструктуру, в которой располагаются сервера.

Работа с большими массивами данных, например, полное обновление справочников товаров, допускается только в периоды времени, когда с системой нет активной работы пользователей. Оптимальным периодом времени является нерабочее время операторов. Иначе могут быть некоторые сложности связанные с общим временем отклика системы.

При этом допускается изменение отдельных объектов через относительно большой период времени. Например, изменение одного или нескольких товаров допускается в любое время, при условии, что такие запросы создаются синхронно с действиями операторов товароучётной системы, а не являются результатом автоматических массовых вычислений. Подобные запросы изменения отдельных объектов не создают ощутимой дополнительной нагрузки.

Весьма динамичное развитие LOYA требует легкого и эффективного взаимодействия с внешними сервисами, которым необходимо оперативно получать новые возможности протокола API. Для облегчения процесса интеграции LOYA со сторонними сервисами, генерирование внешней API-документации LOYA можно осуществлять из swagger-схем и, таким образом, в любое время получать самое актуальное описание внешнего API для каждой версии.

Описание протокола