...
Все запросы отправляются как POST запросы с содержанием "application/json"
. В ответ сервер всегда возвращает HTTP 200 OK
и с содержанием "application/json"
. Единственное исключение — это методы, которые работают с файлам. В теле ответа содержится информация об успешности запроса, результат или ошибка. Для результата может быть приложен граф связанных объектов. Например, если в результате вернулось сообщение в чате, в графе связанных объектов будет пользователь, который отправил это сообщение. Данных подход позволяет снизить объем дублируемых данных в ответах.
Пример запроса:
{"TicketId":103,"Message":{"LocalId":1548142724904,"Type":"text","Text":"Hello"}} |
Пример ответа:
{ |
Авторизация пользовательских запросов
Для авторизации пользовательских запросов к серверу используется токен сессии, который пользователь получает после авторизации. Токен автоматически проставляется в Cookie.
Cookie: user-session ${session-token}
POST /api/tickets/create_message HTTP/1.1 {"TicketId":103,"Message":{"LocalId":1548142724904,"Type":"text","Text":"Hello"}} |
Авторизация сервисных запросов
Для авторизации запросов сервисных аккаунтов используется заголовок Authorization: Bearer <token>, который система генерирует автоматически при создании нового сервисного аккаунта в разделе Пользователи.
Authorization: Bearer ${service-account-token}
POST /api/tickets/create_message HTTP/1.1 {"TicketId":103,"Message":{"LocalId":1548142724904,"Type":"text","Text":"Hello"}} |
Типы данных
Response
Поле | Тип | Обязательное | Комментарий |
---|---|---|---|
OK | bool | Да |
|
Error | Error | Нет | Информация об ошибке. |
Data | Any | Нет | Успешный результат, тип зависит от вызываемого метода. |
Graph | Graph | Нет | Граф зависимых объектов, на которые ссылается результат. |
Error
Ошибка.
Поле | Тип | Nullable | Описание |
---|---|---|---|
Code | ErrorCode | Код ошибки | |
Text | string | Описание ошибки |
ErrorCode
Константа | Значение | Описание |
---|---|---|
ErrorCodeNotFound | "not_found" | Объект не найден |
ErrorCodeForbidden | "forbidden" | Доступ запрещен |
ErrorCodeUnauthorized | "unauthorized" | Ошибка авторизации |
ErrorCodeInvalid | "invalid" | Ошибка валидации данных |