Перейти к основному содержимому

Справочник по эндпоинтам

В этом разделе документированы все REST-эндпоинты, предоставляемые API ChurchApps. На странице каждого модуля перечислены все маршруты с HTTP-методом, путём, требованиями аутентификации и необходимыми разрешениями.

Базовый URL

ОкружениеURL
Локальная разработкаhttp://localhost:8084
Продакшенhttps://api.churchapps.org

Соглашения по запросам

  • Content-Type: Все тела запросов и ответов используют application/json
  • Мультитенантность: Каждый аутентифицированный запрос ограничен churchId, извлечённым из JWT-токена -- вам не нужно передавать churchId в URL
  • Пакетное сохранение: Большинство POST-эндпоинтов принимают массив объектов. API вставит новые записи (без поля id) и обновит существующие (с полем id) за один вызов
  • Идентификаторы: Все ID сущностей являются UUID

Пример: Пакетное сохранение

POST /membership/people
Authorization: Bearer <token>

[
{ "firstName": "Jane", "lastName": "Doe" },
{ "id": "abc-123", "firstName": "John", "lastName": "Smith" }
]

Первый объект создаётся (новый); второй обновляется (имеет id).

Формат ответа

Успешные ответы возвращают JSON -- один объект или массив. Ответы с ошибками используют стандартные HTTP-коды состояния:

КодЗначение
200Успех
400Некорректный запрос (ошибки валидации)
401Не авторизован (отсутствующий/недействительный токен или недостаточные разрешения)
404Не найдено
500Ошибка сервера

Ошибки валидации возвращают:

{
"errors": [
{ "msg": "enter a valid email address", "param": "email", "location": "body" }
]
}

Как читать таблицы эндпоинтов

На странице каждого модуля эндпоинты организованы по контроллерам. В таблицах используются следующие столбцы:

СтолбецОписание
МетодHTTP-метод (GET, POST, DELETE)
ПутьПуть маршрута относительно базового пути контроллера
АутентификацияJWT = требуется Bearer-токен, Public = аутентификация не требуется
РазрешениеНеобходимое разрешение (напр. People.Edit). означает любого аутентифицированного пользователя
ОписаниеЧто делает эндпоинт

Контроллеры, наследующие стандартный CRUD-базовый класс, автоматически предоставляют четыре эндпоинта: GET / (список всех), GET /:id (получить по ID), POST / (создать/обновить) и DELETE /:id (удалить).

Модуль отчётности

Модуль отчётности работает иначе, чем другие модули. Вместо CRUD на основе базы данных он загружает определения отчётов из JSON-файлов на диске и выполняет параметризованные SQL-запросы.

МетодПутьАутентификацияОписание
GET/reporting/reports/:keyNameJWTЗагрузить определение отчёта по имени ключа
GET/reporting/reports/:keyName/runJWTВыполнить отчёт и вернуть результаты

Параметры отчёта передаются как значения строки запроса (напр. ?startDate=2024-01-01&endDate=2024-12-31). Параметр churchId автоматически подставляется из JWT-токена. Каждое определение отчёта может указывать собственные требования к разрешениям.

Указатель модулей

МодульБазовый путьОписание
Аутентификация/membership/users, /membership/oauthВход, регистрация, JWT-токены, OAuth, разрешения
Membership/membership/*Люди, церкви, группы, домохозяйства, роли, формы, настройки
Attendance/attendance/*Кампусы, служения, сессии, посещения, записи регистрации
Content/content/*Страницы, проповеди, события, файлы, галереи, Библия, трансляции
Giving/giving/*Пожертвования, фонды, платёжные шлюзы, подписки
Messaging/messaging/*Переписки, уведомления, устройства, SMS
Doing/doing/*Планы, задачи, назначения, автоматизации, расписание