Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Warning

Мы обновили документацию, актуальная версия страницы доступна по ссылкам: Структура REST API и Методы для работы с ресурсами

В данном разделе описана общая структура API, форматы запросов и ответов

...

При наличии тела запроса (запросы типа POST и PUT), его содержимое должно быть передано в формате JSON, заголовок Content-Type должен быть установлен в application/json. Исключение составляет закгрузка загрузка файлов, например например, звуковых файлов.

Table of Contents

Методы для работы с ресурсами

Названиеhttps запроспуть
параметры пути
получение списка ресурсовGET/realm/{realm_id}/resource/
добавление ресурса POST/realm/{realm_id}/resource/
получение ресурса по идентификаторуGET/realm/{realm_id}/resource/{resource_id}
изменение ресурсаPUT/realm/{realm_id}/resource/{resource_id}
realm (раздел) определяет
удаление ресурса по идентификатору DELETE/realm/{realm_id}/resource/{resource_id}

Параметры пути

realm

Раздел API. Определяет набор доступных ресурсов и операций над ними. Определяется типом авторизованного пользователя. Может принимать значения

  • client (соответствует пользователю типа "клиент")
  • extension_group (соответствует пользователю типа "группа добавочных")
  • extension (соответствует пользователю типа "добавочный"

Пользователь вышестоящего уровня может использовать ресурсы нижестоящего уровня. Например пользователь уровня "клиент" может использовать ресурс "GET /extension/{extension_id}/phone/"

realm_id

...

Идентификатор ресурса, к которому привязан авторизованный пользователь. Для пользователя типа "клиент"(/user/client/) - идентификатор ресурса /client/, для пользователя типа "группа добавочных"(/user/extension_group/) - идентификатор /extension_group/, для пользователя типа "добавочный"(/user/extension/ ) - идентификатор (/extension/).
Если realm и тип авторизованного пользователя совпадают, то в качестве  realm_id может выступать значение "@me". Например, пользователь типа "добавочный" может сделать запрос "GET /extension/@me/phone/", а для пользователя типа "клиент" этот запрос будет

...

некорректен.

Для запросов на ресурсы раздела "добавочный" существует возможность вместо идентификатора добавочного указывать его имя в формате @extension_name:

  • Имя добавочного в полном формате с префиксом клиента: GET /extension/@1844*101/phone/
  • Имя добавочного в сокращенном формате: GET /extension/@101/phone/

resource

Название ресурса, например event или record.

resource_id

Уникальный идентификатор ресурса.


Некоторые ресурсы могут не содержать в пути realm и realm_id. Такие ресурсы не зависят от типа клиента, их использующего, например /timezone/ для получения списка поддерживаемых временных зон.

Набор методов не всегда полный и зависит от ресурса. 

Получение списка ресурсов

Запросы на получение списка ресурсов осуществляются запросом типа GET. В ответе возвращается JSON-массив, содержащий ресурсы. Если ресурсы отсутствуют или ни один из ресурсов не подходит под условия фильтрации (см. ниже), возвращается пустой массив.

HTTP-код ответа при успешной операции: 200.

Фильтрация

Многие запросы на получение списка ресурсов имеют дополнительные параметры запроса, которые указываются в строке запроса после символа "?". Эти параметры позволяют отфильтровать список, возвращаемый запросом по одному или нескольким полям.
Например, запрос ниже позволяет пользователю типа "клиент" получить список добавочных номеров типа "телефон", которые состоят в группе добавочных с идентификатором 1:

Code Block
languagexml
GET https://hostname/api/ver1.0/client/@me/extension/?extension_group_id=1&type=phone

Добавление ресурса

Новые ресурсы добавляются запросом типа POST, тело запроса – JSON-документ, содержащий параметры ресурса. Параметры могут быть обязательными и необязательными. Во втором случае, параметр ресурса примет значение по умолчанию. Некоторые параметры допускают значение null, которое означает отсутствие значения параметра.

...

В случае неправильных параметров возвращаемый ответ имеет код 400, а телом ответа является JSON-документ, описывающий причину ошибки в поле message. Если поле message содержит сообщение "Bad Request", то ошибка заключается в формировании JSON-документа.

Получение ресурса

Получение конкретного ресурса по его идентификатору осуществляется запросом типа GET, при этом идентификатор ресурса содержится в URL, например пользователь типа "клиент" может получить данные о ресурсе "extension" с идентификатором "2"

...


HTTP-код ответа при успешной операции: 200. При этом возвращается ресурс в формате JSON-документа. В случае, если ресурс не найден, код ответа будет 404.

Изменение ресурса

Изменение (обновление) ресурса по его идентификатору осуществляется запросом типа PUT, при этом идентификатор ресурса содержится в URL.

Тело запроса, JSON-документ, содержащий параметры, которые требуется изменить. Параметры, не переданные в запросе, не изменяться.

HTTP-код ответа при успешной операции: 200. В случае успеха операции возвращается обновленный ресурс. Если ресурс отсутствует, код ответа будет 404.

В случае неправильных параметров возвращаемый ответ имеет код 400, а телом ответа является JSON-документ, описывающий причину ошибки в поле message.

Удаление ресурса

Получение конкретного ресурса по его идентификатору осуществляется запросом типа DELETE, при этом идентификатор ресурса содержится в URL.
HTTP-код ответа при успешной операции: 204. Если удаляемый ресурс отсутствует, код ответа будет 404.

Структура частей документации, описывающих ресурсы

  • краткое описание назначения ресурса
  • оглавление
  • таблица с описанием подробное описаниее параметров ресурса
  • примеры использования
  • формальное описание всех методов ресурса для:
    • раздела пользователей типа "клиент"
    • раздела пользователей типа "группа добавочных"
    • раздела пользователей типа "добавочный"
  • примеры использования
  • cсылки теги по теме