Контакты (contacts)

Запросы

HTTP verb Endpoint Описание

POST

/rest/v1/addressbook/contacts

Создание нового контакта

GET

/rest/v1/addressbook/contacts

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

GET

/rest/v1/addressbook/contacts/<id>

Получение данных контакта

PATCH

/rest/v1/addressbook/contacts/<id>

Изменение данных контакта

DELETE

/rest/v1/addressbook/contacts/<id>

Удаление контакта

LOOKUP

/rest/v1/addressbook/contacts

Поиск идентификатора контакта


Создание нового контакта

Запрос

Описание полей: contact entity

Пример запроса
POST /rest/v1/addressbook/contacts HTTP/1.1
Content-Type: application/json; charset=utf-8

contact entity

Ответ

Описание полей: contact entity

Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "id": "ae425147-016c-d818-82d0-50e54938780c",
  "autokey": 1,
  "displayname": "Михаил Сидоров",
  "department": "IT",
  "jobtitle": "engineer",
  "number": "11",
  "numlocal": "411",
  "numpublic": "84950000000",
  "mobile": "8987000000",
  "mobile2": "",
  "mobile3": "",
  "roomnum": "2",
  "roomnum2": "",
  "roomnum3": "",
  "email": "",
  "email2": "",
  "email3": "",
  "photo": "",
  "opts": {
    "title": "",
    "comment": "",
    "groups": [],
    "priority": null
  },
  "ext": {
    "ct": "2019-08-28T11:59:40.75Z",
    "lwt": "2019-08-28T11:59:40.75Z"
  }
}

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

Запрос

Table 1. Параметры запроса
Имя Тип Описание

filter

object

Фильтр по значениям полей.

mask

str

Список полей для вывода. Доступные поля для выдачи: id, autokey, displayname, department, jobtitle, number, email, opts.groups, opts.priority, ext.lwt, ext.ct.

offset

int

Смещение в списке ресурсов, подлежащих выдаче.

limit

int

Максимальное количество ресурсов в списке.

order

array<object|str>

Порядок сортировки ресурсов в списке.

flat

bool

Преобразование в плоский вид составных полей.

Пример запроса
GET /rest/v1/addressbook/contacts?offset=0&limit=2 HTTP/1.1

Ответ

Описание полей: contact entity

Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

[
  {
    "id": "ae425147-016c-d818-82d0-50e54938780c",
    "autokey": 1,
    "displayname": "Михаил Сидоров",
    "department": "IT",
    "jobtitle": "engineer",
    "number": "11",
    "email": "m.sidorov@company.com",
    "opts": {
      "groups": [
        "engineers"
      ],
      "priority": 100
    },
    "ext": {
      "ct": "2019-08-28T11:59:40.75Z",
      "lwt": "2019-08-29T07:57:58.40Z"
    }
  },
  {
    "id": "26d569b2-016c-d818-9e97-50e54938780c",
    "autokey": 2,
    "displayname": "Семен Петров",
    "department": "IT",
    "jobtitle": "engineer",
    "number": "12",
    "email": "s.petrov@company.com",
    "opts": {
      "groups": [],
      "priority": null
    },
    "ext": {
      "ct": "2019-08-28T11:59:47.86Z",
      "lwt": "2019-08-29T07:57:47.50Z"
    }
  }
]

Получение данных контакта

Запрос

Table 2. Параметры запроса
Имя Тип Описание

mask

str

Список полей для вывода.

flat

bool

Преобразование в плоский вид составных полей.

Пример запроса
GET /rest/v1/addressbook/contacts/ae425147-016c-d818-82d0-50e54938780c HTTP/1.1

Ответ

Описание полей: contact entity

Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "id": "ae425147-016c-d818-82d0-50e54938780c",
  "autokey": 1,
  "displayname": "Михаил Сидоров",
  "department": "IT",
  "jobtitle": "engineer",
  "number": "11",
  "numlocal": "411",
  "numpublic": "84950000000",
  "mobile": "8987000000",
  "mobile2": "",
  "mobile3": "",
  "roomnum": "2",
  "roomnum2": "",
  "roomnum3": "",
  "email": "m.sidorov@company.com",
  "email2": "",
  "email3": "",
  "photo": "",
  "opts": {
    "title": "",
    "comment": "",
    "groups": [
      "engineers"
    ],
    "priority": 100
  },
  "ext": {
    "ct": "2019-08-28T11:59:40.75Z",
    "lwt": "2019-08-29T07:57:58.40Z"
  }
}

Изменение данных контакта

Поля запрещенные для изменения: id, autokey

Особенности

  • При изменении состава групп, связка со стороны группы изменяется автоматически.

Запрос

Описание полей: contact entity

Пример запроса
PATCH /rest/v1/addressbook/contacts/ae425147-016c-d818-82d0-50e54938780c HTTP/1.1
Content-Type: application/json; charset=utf-8

contact entity

Ответ

Описание полей: contact entity

Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "id": "ae425147-016c-d818-82d0-50e54938780c",
  "autokey": 1,
  "displayname": "Михаил Сидоров",
  "department": "IT",
  "jobtitle": "engineer",
  "number": "11",
  "numlocal": "411",
  "numpublic": "84950000000",
  "mobile": "8987000000",
  "mobile2": "",
  "mobile3": "",
  "roomnum": "2",
  "roomnum2": "",
  "roomnum3": "",
  "email": "m.sidorov@company.com",
  "email2": "",
  "email3": "",
  "photo": "",
  "opts": {
    "title": "",
    "comment": "",
    "groups": [
      "engineers"
    ],
    "priority": 100
  },
  "ext": {
    "ct": "2019-08-28T11:59:40.75Z",
    "lwt": "2019-08-29T07:57:58.40Z"
  }
}

Удаление контакта

Запрос

Пример запроса
DELETE /rest/v1/addressbook/contacts/ae425147-016c-d818-82d0-50e54938780c HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 204 No Content

Поиск идентификатора контакта

Производит поиск ресурса по указанному ключу, возвращает идентификатор(ы) для построения endpoint.

Ключевые поля для поиска: id, autokey, number

Запрос

Пример запроса
LOOKUP /rest/v1/addressbook/contacts HTTP/1.1
Content-Type: application/json; charset=utf-8

"11"

Ответ

Пример успешного ответа
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8

[
  "ae425147-016c-d818-82d0-50e54938780c"
]
Пример неуспешного ответа
HTTP/1.1 404 Not Found
Content-Type: application/json; charset=utf-8

{
  "error_code": 1404,
  "error_message": "Lookup failed"
}