API информации о пользователе на центральном сервере СУО Enter 4.4.3.0 (и выше)

Общие сведения

API работает по протоколу HTTP на порту, сконфигурированном для службы центрального сервера СУО (по умолчанию 82).

Запросы к API выполняются через HTTP-методы GET/POST.

Тело ответа имеет формат JSON, кодировку UTF-8.

Доступ к API возможен в двух случаях:
  1. Запрос выполняется с HTTP-заголовком Token, в котором указывается токен вашей системы, выданный вам администратором центрального сервера СУО. Если токен некорректный, сервер вернет ответ с HTTP-статусом 401 Unauthorized.

  2. Запрос (без заголовка Token). Если в конфигурации СУО отключена возможность выполнять запросы без заголовка Token, сервер вернет ответ с HTTP-статусом 401 Unauthorized.

Формат ответа об ошибке

Ответ об ошибке приходит с HTTP-статусом 4xx или 5xx в теле ответа приходит объект ErrorResponse.
  • Ответ с HTTP-статусом 4xx означает, что, вероятно, проблема на стороне интегратора или клиента.

  • Ответ с HTTP-статусом 5xx означает, что проблема произошла не по вине клиента или интегратора, и нужно обратится к владельцам системы с текстом ошибки.

Примечание

Если приходит UserMessage, то его обязательно нужно показать клиенту, если его нет, можно сказать общим планом, что что-то пошло не так. Если приходит Message, значит интегратору нужно обратить на него внимание, если его нет, то никак не нужно реагировать

ErrorResponse {
  "UserMessage": string, // cообщение для пользователя
  "Message": string // cообщение для интеграторов
}

Пример ответа на непринятый запрос

POST /api/1/ticketregistration/login/userTest HTTP/1.1
Token: a0adba90-b8a7-4fcd-9f73-787ae2eed727
Content-Length: 0
Host: center.suo.club:82

HTTP/1.1 401 Unauthorized
Content-Length: 138
Content-Type: application/json; charset=utf-8
Server: Microsoft-HTTPAPI/2.0
Access-Control-Allow-Origin: *
Date: Fri, 07 Jun 2019 10:01:21 GMT
{
  "UserMessage": null,
  "Message": "Внешняя система с токеном a0adba90-b8a7-4fcd-9f73-787ae2eed727 не найдена."
}

GET /api/1/config/users/bylogin/{login}

Возвращает информацию о пользователе по заданному логину.

Заголовки

Token (опциональный) - идентификатор внешней системы

Параметры

login - логин пользователя в системе

Формат ответа

{
  Id, // Guid - ИД пользователя
  Login, // String - логин
  Name, // String - имя
  SurName, // String - фамилия
  IsDisabled, // Boolean - пользователь отключен
  IntegrationId // String - идентификатор для API
}

Пример запроса

GET /api/1/config/users/bylogin/test1
HTTP/1.1
Content-Length: 0
Host: center.suo.club:82

Пример ответа

{
  "Id": "62444aab-43b1-a6e0-65ff-7d79da98357c",
  "Login": "test1",
  "Name": "Тест",
  "SurName": "1",
  "IsDisabled": false,
  "IntegrationId": null
}

GET /api/1/config/users/{enter_id}/available/servers

Возвращает информацию о серверах, к которым пользователь имеет доступ.

Заголовки

Token (опциональный) - идентификатор внешней системы

Параметры

enter_id - GUID пользователя в системе

Формат ответа

[
  {
    Id, // Guid - ИД филиала
    Name, // String - название филиала
    IsConnected, // Boolean - филиал подключен
    WrongProtocol, // Boolean - филиал подключен с некорректной версией протокола
    ClientId, // String - ключ установки
    OrganizationName, // String
    OrganizationFullName, // String
    OrganizationAddress, // String
    IntegrationId // String - идентификатор филиала для API
  }
]

Пример запроса

GET /api/1/config/users/62444aab-43b1-a6e0-65ff-7d79da98357c/available/servers
HTTP/1.1
Content-Length: 0
Host: center.suo.club:82

Пример ответа

[
  {
    "Id": "81bef4c6-2136-d95b-f4b6-e4982ae3a72f",
    "Name": "enter",
    "IsConnected": true,
    "WrongProtocol": false,
    "ClientId": "enter",
    "OrganizationName": "enter",
    "OrganizationFullName": null,
    "OrganizationAddress": "enter"
  }
]

GET /api/1/config/users/{enter_id}/available/roles

Возвращает информацию о ролях, котоыре назначены пользователю в системе.

Заголовки

Token (опциональный) - идентификатор внешней системы

Параметры

enter_id - GUID пользователя в системе

Формат ответа

[
  {
    Id, // Guid - ИД роли
    Name, // String - название роли
    IntegrationId // String - идентификатор роли для API
  }
]

Пример запроса

GET /api/1/config/users/62444aab-43b1-a6e0-65ff-7d79da98357c/available/roles
HTTP/1.1
Content-Length: 0
Host: center.suo.club:82

Пример ответа

[
  {
    "Id": "b5ed2ddd-abef-4dc7-86c7-336eaef07cd9",
    "Name": "Оператор",
    "IntegrationId": null
  }
]

GET /api/1/config/groups

Возвращает информацию о группах пользователей, которые имеются на сервере.

Заголовки

Token (опциональный) - идентификатор внешней системы

Формат ответа

[
  {
    Id, // Guid - ИД группы
    Name, // String - название группы
    IntegrationId - String - идентификатор группы для API
    ServerId - Guid - ИД сервера, к которому привязана группа
  }
]

Пример запроса

GET /api/1/config/groups
HTTP/1.1
Content-Length: 0
Host: center.suo.club:82

Пример ответа

[
  {
    "Id": "56624fe4-07b7-42da-bbf7-4e3fcb5104ec",
    "Name": "Инженеры-инспекторы",
    "IntegrationId": null,
    "ServerId": "ce91e566-9ecf-9892-5197-48f5b1af1eb8"
  },
  {
    "Id": "3c372ad8-b9b5-d20a-9199-b0062bde954d",
    "Name": "Профиль: Биометрические паспорта Выдача",
    "IntegrationId": null,
    "ServerId": null
  },
  {
    "Id": "f6a2e5ba-498e-30e2-3518-3078bb443e30",
    "Name": "Профиль: Биометрические паспорта Выдача (Ситуационная помощь)",
    "IntegrationId": null,
    "ServerId": null
  }
]

GET /api/1/config/users/{enter_id}/groups

Возвращает информацию о группах, в которые пользователь уже входит и которые доступны для назначения.

Заголовки

Token (опциональный) - идентификатор внешней системы

Параметры

enter_id - GUID пользователя в системе

Формат ответа

{
  AvailableGroups:[ - группы доступные пользователю для назначения
    {
      Id, // Guid - ИД группы
      Name, // String - название группы
      IntegrationId // String - идентификатор группы для API
      ServerId // Guid - ИД сервера, к которому привязана группа
    }
  ],
  SelectedGroups:[ // группы, в которых пользователь уже состоит
    {
      Id, // Guid - ИД группы
      Name, // String - название группы
      IntegrationId // String - идентификатор группы для API
      ServerId - Guid // ИД сервера, к которому привязана группа
    }
  ]
}

Пример запроса

GET /api/1/config/users/62444aab-43b1-a6e0-65ff-7d79da98357c/groups
HTTP/1.1
Content-Length: 0
Host: center.suo.club:82

Пример ответа

{
  "AvailableGroups": [
    {
      "Id": "3c372ad8-b9b5-d20a-9199-b0062bde954d",
      "Name": "Профиль: Биометрические паспорта Выдача",
      "IntegrationId": null,
      "ServerId": null
    },
    {
      "Id": "f6a2e5ba-498e-30e2-3518-3078bb443e30",
      "Name": "Профиль: Биометрические паспорта Выдача (Ситуационная помощь)",
      "IntegrationId": null,
      "ServerId": null
    }
  ],
  "SelectedGroups": [
    {
      "Id": "c71c4f7c-e2c6-177a-20ba-255121b5c71e",
      "Name": "Профиль: Сервисы МФЦ",
      "IntegrationId": null,
      "ServerId": null
    }
  ]
}

POST /api/1/config/users/{enter_id}/groups?groupIds={groupIds}

Назначение пользователю нового списка групп, в которые он должен входить.

Заголовки

Token (опциональный) - идентификатор внешней системы

Параметры

groupIds (опциональный) - GUID пользователя в системе

Пример запроса

POST /api/1/config/users/62444aab-43b1-a6e0-65ff-7d79da98357c/groups ?groupIds=907df9d4-7e85-5501-0d8d-aa7e7492bf91
HTTP/1.1
Content-Length: 0
Host: center.suo.club:82