https://api-dev.gorod.ru/v1
Большинство список идут в формате:
{
items: [],
pagination: {
total: Number,
limit: Number,
offset: Number,
}
}
Иногда пагинация может отсутствовать, если планируется, что в ресурсе не очень много записей.
Ошибки бывают разных типов:
Ошибка в реквесте, например, нет JSON-а в body или нет такой записи.
Ошибка валидации (например, в формах). В ответ приходит массив. [ { message: String, param: String, } ]
- param — ключ, по которому валидация не проходит,
- message — причина;
Внутренняя ошибка, нужно сообщить разработчикам.
Пользователь не авторизован для этого ресурса.
Словари — список информации, обычно используется для автодополнения. Существующие типы:
- document_type
{
title: String,
id: Number,
}
Request:
{
title: String
}
Авторизация работает по токенам, каждый токен живет 30 дней.
{
token: String
}
Request:
{
email: String,
password: String
}
{
id: Number,
email: String,
state: Enum["active", "inactive", "invited"],
firstName: String,
lastName: String,
middleName: String,
workPhoneNumber: String,
personalPhoneNumber: String,
personalEmail: String,
passwordHash: Option[String],
departmentId: Number, // пока не работает как нужно (https://dev.dtrussia.com/browse/CEM-114)
positionId: Number, // пока не работает как нужно (https://dev.dtrussia.com/browse/CEM-114)
startedWorkAt: ZonedDateTime,
finishedWorkAt: Option[ZonedDateTime],
photo: Option[Image],
createdAt: ZonedDateTime,
updatedAt: ZonedDateTime
}
Request:
{
email: String,
password: String
}
:id
может быть и me