REST-эндпоинты

Каждая сущность в Apostol CRM предоставляет свой API через функцию-диспетчер в схеме rest. C++ сервер маршрутизирует HTTP-запросы к этим PL/pgSQL функциям.

Как работает маршрутизация

При получении POST /api/v1/sensor/list сервер:

  1. Убирает префикс /api/v1/
  2. Извлекает имя сущности: sensor
  3. Находит зарегистрированный эндпоинт: rest.sensor
  4. Вызывает rest.sensor('/sensor/list', payload)

6 стандартных маршрутов

Каждая сущность реализует:

МаршрутНазначение
/entity/typeДоступные типы
/entity/methodДоступные методы для объекта
/entity/countКоличество объектов с фильтрацией
/entity/setСоздание или обновление (upsert)
/entity/getПолучение объекта по ID
/entity/listСписок с поиском, фильтрацией, пагинацией

Динамическая делегация

Маршруты для рабочих процессов обрабатываются автоматически:

ELSE
  RETURN NEXT ExecuteDynamicMethod(pPath, pPayload);

Это обрабатывает: /entity/enable, /entity/disable, /entity/delete, /entity/restore и любые пользовательские действия.

Регистрация маршрута

PERFORM RegisterRoute('sensor', AddEndpoint('SELECT * FROM rest.sensor($1, $2);'));

Полная версия с примерами кода доступна на английском языке: REST Endpoint Guide (English).