Пользовательские роли (roles)

Запросы

HTTP verb Endpoint Описание

POST

/rest/v1/domain/roles

Создание новой пользовательской роли

GET

/rest/v1/domain/roles

Получение списка пользовательских ролей

GET

/rest/v1/domain/roles/<id>

Получение данных пользовательской роли

PATCH

/rest/v1/domain/roles/<id>

Изменение данных пользовательской роли

DELETE

/rest/v1/domain/roles/<id>

Удаление пользовательской роли

LOOKUP

/rest/v1/domain/roles

Поиск идентификатора пользовательской роли


Создание новой пользовательской роли

Запрос

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

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

role entity

Ответ

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

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

{
  "id": "afafafaf-0178-3fc1-67fc-7cd30a921f58",
  "name": "testrole",
  "description": "",
  "parent_id": "00000000-0000-0000-0000-000000000000",
  "routes": [
    {
      "methods": [ "*" ],
      "url": "/rest/v1/model/abc/def"
    },
    {
      "methods": [ "GET", "LOOKUP" ],
      "url": "/rest/v1/model/abc/zzzzzzzzz"
    },
    {
      "methods": ["WEBSOCKET"],
      "url": "/ws#rest"
    }
  ],
  "webapps": [],
  "opts": {
    "comment": "",
    "title": ""
  },
  "ext": {
    "ct": "2021-03-20T10:37:03.82Z",
    "lwt": "2021-03-20T10:41:42.25Z"
  }
}

Получение списка пользовательских ролей

Запрос

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

filter

object

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

mask

str

Список полей для вывода. Доступные поля для выдачи: id, name, description, parent_id, routes, opts.title, opts.comment, ext.lwt, ext.ct.

offset

int

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

limit

int

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

order

array<object|str>

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

flat

bool

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

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

Ответ

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

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

[
  {
    "id": "afafafaf-0178-3fc1-67fc-7cd30a921f58",
    "name": "testrole",
    "description": "",
    "parent_id": "00000000-0000-0000-0000-000000000000",
    "routes": [
      {
        "methods": [ "" ],
        "url": "/rest/v1/model/abc/def"
      },
      {
        "methods": [ "GET", "LOOKUP" ],
        "url": "/rest/v1/model/abc/zzzzzzzzz"
      },
      {
        "methods": ["WEBSOCKET"],
        "url": "/ws#rest"
      }
    ],
    "webapps": [],
    "opts": {
      "comment": "",
      "title": ""
    },
    "ext": {
      "ct": "2021-03-20T10:37:03.82Z",
      "lwt": "2021-03-20T10:41:42.25Z"
    }
  },
  {
    "id": "abcdef00-05b7-8163-948c-3392a9660db9",
    "name": "xxx",
    "description": "",
    "parent_id": "afafafaf-0178-3fc1-67fc-7cd30a921f58",
    "routes": [
      {
        "methods": [
          "GET"
        ],
        "url": "/rest/v1/uc/*"
      }
    ],
    "webapps": [],
    "opts": {
      "comment": "",
      "title": ""
    },
    "ext": {
      "ct": "2021-03-22T20:22:25.26Z",
      "lwt": "2021-03-22T20:22:25.26Z"
    }
  }
]

Получение данных пользовательской роли

Запрос

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

mask

str

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

flat

bool

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

Пример запроса
GET /rest/v1/domain/roles/afafafaf-0178-3fc1-67fc-7cd30a921f58 HTTP/1.1

Ответ

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

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

{
  "id": "afafafaf-0178-3fc1-67fc-7cd30a921f58",
  "name": "testrole",
  "description": "",
  "parent_id": "00000000-0000-0000-0000-000000000000",
  "routes": [
    {
      "methods": [ "*" ],
      "url": "/rest/v1/model/abc/def"
    },
    {
      "methods": [ "GET", "LOOKUP" ],
      "url": "/rest/v1/model/abc/zzzzzzzzz"
    },
    {
      "methods": ["WEBSOCKET"],
      "url": "/ws#rest"
    }
  ],
  "webapps": [],
  "opts": {
    "comment": "",
    "title": ""
  },
  "ext": {
    "ct": "2021-03-20T10:37:03.82Z",
    "lwt": "2021-03-20T10:41:42.25Z"
  }
}

Изменение данных пользовательской роли

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

Запрос

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

Пример запроса
PATCH /rest/v1/domain/roles/afafafaf-0178-3fc1-67fc-7cd30a921f58 HTTP/1.1
Content-Type: application/json; charset=utf-8

role entity

Ответ

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

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

{
  "id": "afafafaf-0178-3fc1-67fc-7cd30a921f58",
  "name": "testrole",
  "description": "",
  "parent_id": "00000000-0000-0000-0000-000000000000",
  "routes": [
    {
      "methods": [ "*" ],
      "url": "/rest/v1/model/abc/def"
    },
    {
      "methods": [ "GET", "LOOKUP" ],
      "url": "/rest/v1/model/abc/zzzzzzzzz"
    },
    {
      "methods": ["WEBSOCKET"],
      "url": "/ws#rest"
    },
    {
      "methods": ["WEBSOCKET"],
      "url": "/ws#subscr"
    }
  ],
  "webapps": [],
  "opts": {
    "title": "",
    "comment": "New comment"
  },
  "ext": {
    "ct": "2021-03-20T10:37:03.82Z",
    "lwt": "2021-03-20T10:41:42.25Z"
  }
}

Удаление пользовательской роли

Запрос

Пример запроса
DELETE /rest/v1/domain/roles/afafafaf-0178-3fc1-67fc-7cd30a921f58 HTTP/1.1

Ответ

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

Поиск идентификатора пользовательской роли

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

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

Запрос

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

"testrole"

Ответ

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

[
  "afafafaf-0178-3fc1-67fc-7cd30a921f58"
]
Пример неуспешного ответа
HTTP/1.1 404 Not Found
Content-Type: application/json; charset=utf-8

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