REST-эндпоинты
Каждая сущность в Apostol CRM предоставляет свой API через функцию-диспетчер в схеме rest. C++ сервер маршрутизирует HTTP-запросы к этим PL/pgSQL функциям.
Как работает маршрутизация
При получении POST /api/v1/sensor/list сервер:
- Убирает префикс
/api/v1/ - Извлекает имя сущности:
sensor - Находит зарегистрированный эндпоинт:
rest.sensor - Вызывает
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).