Skip to content

Динамический метод

Alien Ufo edited this page Mar 14, 2022 · 9 revisions

Динамический метод - это часть документооборота системы.

Динамический метод, в отличие от статического, можно добавить в систему через инструменты администрирования без внесения изменений в её программный код.

API

  • Напоминаем что возможность вызова метода зависит от состояния объекта. Иными словами для каждого состояния объекта существует свой набор методов.

  • Вызов метода в ином состоянии объекта приведет к ошибке.

Как получить список доступных действий, состояний и методов объекта смотрите на странице конечные точки документооборота.

Динамический метод можно вызвать несколькими способами:

Способ № 1

POST /api/v1/method/execute

Выполняет динамический метод объекта.

Параметры запроса:

Имя Тип Значение Описание
object UUID Обязательный. Идентификатор объекта.
method UUID Вариативный. Идентификатор метода имеет приоритет над code.
code STRING Вариативный. Код действия. Можно указать вместо идентификатора метода.
params JSON Необязательный. Параметры HTML формы в формате JSON.
  • Обратите внимание, что в code передается не код метода, а код действия.

Способ № 2

POST /api/v1/object/method/execute

Выполняет динамический метод объекта.

Параметры запроса:

Имя Тип Значение Описание
id UUID Обязательный. Идентификатор объекта.
method UUID Вариативный. Идентификатор метода имеет приоритет над code.
code STRING Вариативный. Код действия. Можно указать вместо идентификатора метода.
params JSON Необязательный. Параметры HTML формы в формате JSON.
  • Обратите внимание, что в code передается не код метода, а код действия.

Способ № 3

Более классический для архитектурного стиля REST.

POST /api/v1/<class>/<action>

Где:

  • <class> - это код класса объекта;
  • <action> - это код действия.

Выполняет динамический метод объекта.

Параметры запроса:

Имя Тип Значение Описание
id UUID Обязательный. Идентификатор объекта.
params JSON Необязательный. Параметры HTML формы в формате JSON.

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

  • Формат ответа не регламентируемый и зависит от конкретной реализации того или иного метода.

Пример:

Запрос:

POST /api/v1/method/execute HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.[сокращенно для краткости].NorYsi-Ht826HUFCEArVZ60_dEUmYiJYXubnTyweIMg

{"object": "7bec5a74-0c6b-4315-8343-18832ec1e079", "code": "disable"}

Запрос:

POST /api/v1/object/method/execute HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.[сокращенно для краткости].NorYsi-Ht826HUFCEArVZ60_dEUmYiJYXubnTyweIMg

{"id": "7bec5a74-0c6b-4315-8343-18832ec1e079", "code": "disable"}

Запрос:

POST /api/v1/calendar/disable HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.[сокращенно для краткости].NorYsi-Ht826HUFCEArVZ60_dEUmYiJYXubnTyweIMg

{"id": "7bec5a74-0c6b-4315-8343-18832ec1e079"}
Clone this wiki locally