Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Назначение протокола

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

  • товаро-учётными системами;
  • 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-клиента и внутренних IT-служб, обслуживающих инфраструктуру, в которой располагаются сервера.

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

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

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

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