Если после запроса возникла ошибка на сервере, то ответ будет возвращенн в виде JSON в cледующем формате:
{ errors: [{ code: ...., message: .... },...] }
где:
- code - это символьный код ошибки
- message - пояснение к ошибке
а также соответствующего HTTP статуса ответа
Для кодирование даты и времени используем стандарт ISO8601. Если не указана временная зона, то предполагается что это UTC.
Необходимо в файле .env в корне проекта прописать следующие переменные
Для сохранения аватарок пользователя
- AWS_S3_ACCESS_KEY_ID - access_key_id для Amazon S3
- AWS_S3_SECRET_ACCESS_KEY - secret_access_key для Amazon S3
- AWS_S3_BUCKET_NAME - наименовани Bucket на Amazon S3 куда сохраняются файл. Его необходимо заранее создать. Для отправки отчета
- FROM_EMAIL - адрес для поля From письма с отчетом
- SMTP_SERVER - сервер через который будет производится отправка
- SMTP_PORT - порт через который будет производится отправка писем
- SMTP_AUTH_LOGIN - логин для авторизации отправки почты
- SMTP_AUTH_PASS - пароль для авторизации отправки почты
В файле application.rb, либо в файле для соответствующего рабочего окружения надо прописать
config.auth_token_expiration_time = 1.days
Для работы фоновых задач необходимо установить sidekiq с настройками по умолчанию
Интерфейса для создания пользвателя нет, поэтому перед авторизацией необходимо создать пользователя вручную в базе. Для облегчения создания тестового пользователя можно запустить
$ bin/rails db:seed
Будет созданы 2 пользователя с параметрами:
-
nickname: NickName
-
email: [email protected]
-
password: 123123123
-
nickname: Angel
-
email: [email protected]
-
password: 231231231
GET: /authenticate.json
Параметры
- email - email пользователя
- password - пароль
в результате получаем JSON c полем
- auth_token - авторизационный токен.
Данный токен необходимо добавлять к любому запросу как допольнительный параметр auth_token. Если токен будет пропущен при запросе, то в результате придет ошибка с кодом missing_token. Если токен будет неправильный или невалидный, то придет ошибка с кодом invalid_token.
- invalid_credentials - возникает если логин или пароль неправильные или отсутствуют
POST: /api/v1/posts.json
Параметры
- title - заголовок записи (не более 200 символов)
- body - текст записи (не более 10000 символов)
- published_at - дата/время публикации (если не указана, то берется текущая дата/время)
В ответ получаем JSON-запись с полями
- id - идентификатор записи в базе
- title - заголовок созданной записи
- body - текст записи
- published_at - дата/время публикации
- author_nickname - nickname пользователя создавшего данную запись
- post_create_failed - проблема при создании записи. Таких ошибок может быть несколько.
GET: /api/v1/posts/:id.json где id - это идентификатор записи в базе
Аналогичен ответу при создании записи в блоге
- not_found - если запись не найдена в базе
GET: /api/v1/posts.json
Параметры
- page - номер страницы
- per_page - кол-во записей на страницу
В ответ получаем JSON-запись со списком записей отсортированных по полю published_at по убыванию. Каждая запись в формате аналогичном ответу при создании записи в блоге. Дополнительно в HTTP-заголовке ответа передаются поля
- Full-Page-Count - общее количество страниц
- Full-Record-Count - общее количество записей в блоге
GET: /api/v1/reports/by_author.json
Параметры
- start_date - начальная дата выборки для отчета
- end_date - конечная дата выборки для отчета
- email - email куда надо выслать отчет
В ответ получаем JSON-запись: { message: "Report generation started" }