Активные наносервисы продуктового слоя (nservices)

Обзор

Выполняет запросы к наносервисам продуктового слоя. Наносервисы входят в состав микросервисов продуктового слоя, добавляемых в коллекцию mservices и имеют уникальные имена.

На обработку запроса выделяется 5 секунд, если целевой наносервис не увеличит интервал ожидания. Контроль жизни запроса обеспечивает наносервис 'platform.WatchdogService'.

На обработку запроса выделяется 5 секунд, если целевой наносервис не увеличит интервал ожидания. Контроль жизни запроса обеспечивает наносервис 'platform.WatchdogService'.

При выполнении запроса обязательным является указание в URL имени наносервиса (из списка активных), а также передача в теле запроса параметра 'method', и опционально 'request' для передачи параметров в произвольном формате: строка, число, объект, массив и т.д.
В качестве ответа возвращается объект с полями:
'result' :: "ok" | "error"
'code' :: "success" | "error" | "timeout" | "failed" | "notfound"
'response' :: произвольный формат

Запросы

HTTP verb Endpoint Описание

GET

/rest/v1/domain/nservices

Получение списка имен активных наносервисов

POST

/rest/v1/domain/nservices/<name>

Выполнение запроса к наносервису


Получение списка имен активных наносервисов

Запрос

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

filter

object

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

mask

str

Список полей для вывода. Доступные поля для выдачи: name.

offset

int

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

limit

int

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

order

array<object|str>

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

flat

bool

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

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

Ответ

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

[
  {"name":"builder.DataService"},
  {"name":"builder.GeneratorService"}
]

Выполнение запроса к наносервису

Запрос

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

{
  "method": "test",
  "request": {"a":10,"b":[{"c":"20","d":"30"}]}
}

Ответ

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

{
  "result": "ok",
  "code": "success",
  "response": {"a":1,"b":2,"ccc":3}
}