# REST API ## Авторизация HTTP заголовок: Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 Токен возвращается в ответ на `/auth` ## Статус коды ответов Успех: 2ХХ Ошибка сервера: 5ХХ Ошибка входящего запроса (включая ошибки бизнес-логики): 4ХХ В ответе возвращается тип ошибки {"error": "E_VALIDATION"} ## Общие ошибки: * E_VALIDATION Ошибка входящих параметров * E_SESSION_EXPIRED Сессия истекла, пользователя нужно направить на форму авторизации * E_TOKEN Неправильно сформирован токен * E_AUTH Неправильный логин или пароль * E_NOT_FOUND Сущность не найдена * E_ACCESS Не достаточно прав для просмотра ## Формат ответа Ответ от сервера возвращается в JSON. Значение null описывает не установленное значение имеющегося поле. В UI должно выводиться как «Не установлено», прочерк и тп, в инпутах каститься в пустую строку ## Работа с файлами Работа с файлами происходит единообразно в данных формы (multipart/form-data): * загрузка/обновление: POST/PUT {param: text, ..., file: file} * удаление: PUT {param: text, ..., file: ''} * обновление без изменения файла: PUT {param: text, ...} ## CRUD endpoints Каждая из сущностей, представленных ниже, имеет стандартные точки доступа: * `GET /entity` Получить список всех сущностей * `POST /entity` Добавить новую сущность * `GET /entity/:id` Получить подробную информацию о сущности * `PUT /entity/:id` Обновить информацию * `DELETE /entity/:id` Удалить сущность ### User Управление пользователями ### Course Управление курсами ### Lesson Управление уроками курсов. Является вложенной сущностью от Course ### Payment, AuthorBalance Получение информации об оплатах и управление запросами на вывод ### Comment Управление комментариями(модерирование) ### Category Управление справочником категорий курсов ### Subscription Управление подписками и рассылками пользователям _Форматы запросов и ответов будут подробно описываться с помощью автоматической документации Swagger Documentation Generator for Django REST Framework_