АНО ЦСВМ

Документация API

REST API работает на том же хосте, что и backend. Все пути ниже указаны относительно backend URL. Для запросов с авторизацией браузер должен передавать cookies.

Публичный контент

GET/api/sectionsОпубликованные разделы страниц. Поддерживает стандартные параметры Payload: where, sort, depth и limit.
GET/api/education-programsОпубликованные и видимые образовательные программы.
GET/api/globals/landing-galleryГалерея главной страницы.
curl 'https://back.example.ru/api/sections?where[page][equals]=about&sort=order&depth=2&limit=100'

Списки Payload возвращаются в объекте с полем docs и данными пагинации. Неопубликованные и скрытые записи публичному клиенту не выдаются.

Авторизация

POST/api/auth/registerРегистрация пользователя. Поля: fullName, email, password, passwordConfirmation.
POST/api/users/loginВход по email и password. В ответ устанавливается cookie сессии.
GET/api/users/meТекущий пользователь. Запрос должен передавать cookie сессии.
POST/api/users/logoutЗавершение текущей сессии.
curl -X POST 'https://back.example.ru/api/users/login' \
  -H 'Content-Type: application/json' \
  -c cookies.txt \
  -d '{"email":"user@example.ru","password":"password"}'

Обратная связь

POST/api/feedback-submitПубличная отправка обращения. Поля: fullName, phone, email; website — honeypot и должен быть пустым.
curl -X POST 'https://back.example.ru/api/feedback-submit' \
  -H 'Content-Type: application/json' \
  -d '{"fullName":"Иван Иванов","phone":"+79990000000","email":"ivan@example.ru","website":""}'

Ограничение: не более пяти попыток с одного IP за 15 минут.

Ошибки

Пользовательские endpoints возвращают JSON с машиночитаемым кодом и русским сообщением. Ошибки валидации обычно имеют статус 422, превышение лимита — 429.

{
  "error": {
    "code": "INVALID_EMAIL",
    "message": "Укажите корректную электронную почту"
  }
}