Управление правилами
Управление правилами осуществляется при помощи Websocket API или REST API.
Создание правила
Новое правило создается при помощи запроса /api/rule/create
WS API |
SEND
destination:/app/api/rule/create
content-length:150
{
"requestId":"41bf9d28-5dbe-45cc-9add-ff443997e1d5",
"realm":"/api/rule/create",
"payload":
{
"type":"0",
"name":"rule1",
"value":"test*",
"profiles":["1"]
}
}
|
MESSAGE
destination:/user/service
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:3-17
content-length:84
{
"requestId":"41bf9d28-5dbe-45cc-9add-ff443997e1d5",
"status":200,
"reason":"SUCCESS"
}
|
200 OK
400 Object not found
500 Persist exception
|
REST API |
POST: /api/rule/create "application/json; charset=utf-8"
{
"type":"0",
"name":"rule2",
"value":"test*",
"profiles":["1"]
}
|
{
"status":200,
"reason":"SUCCESS"
}
|
200 OK
400 Object not found
500 Persist exception
|
Здесь:
type
– тип правила:
0
– шаблон имени потока, опубликованного на WCS
1
- шаблон идентификатора медиасессии
name
– имя правила
value
– значение правила (шаблон)
profiles
– список идентификаторов профилей, к которым применяется правило
Изменение правила
Правило может быть изменено при помощи запроса /api/rule/update
:
WS API |
SEND
destination:/app/api/rule/update
content-length:163
{
"requestId":"cc2605d6-ef85-4a7e-9a8f-04733c413b3d",
"realm":"/api/rule/update",
"payload":
{
"id":"2",
"type":"0",
"name":"rule1",
"value":"test*",
"profiles":["1","2"]
}
}
|
MESSAGE
destination:/user/service
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:3-20
content-length:84
{
"requestId":"cc2605d6-ef85-4a7e-9a8f-04733c413b3d",
"status":200,
"reason":"SUCCESS"
}
|
200 OK
400 Object not found
500 Persist exception
|
REST API |
POST: /api/rule/update "application/json; charset=utf-8"
{
"id":"3",
"type":"0",
"name":"rule2",
"value":"test*",
"profiles":["1","2"]
}
|
{
"status":200,
"reason":"SUCCESS"
}
|
200 OK
400 Object not found
500 Persist exception
|
Здесь:
id
– идентификатор правила
type
– тип правила (0
или 1
)
name
– имя правила
value
– значение правила (шаблон)
profiles
– список идентификаторов профилей, к которым применяется правило
Удаление правила
Правило может быть удалено при помощи запроса /api/rule/delete
:
WS API |
SEND
destination:/app/api/rule/delete
content-length:100
{
"requestId":"a1887fc3-c674-4951-b5b8-ff1d69fed097",
"realm":"/api/rule/delete",
"payload":
{
"id":"2"
}
}
|
MESSAGE
destination:/user/service
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:3-21
content-length:84
{
"requestId":"a1887fc3-c674-4951-b5b8-ff1d69fed097",
"status":200,
"reason":"SUCCESS"
}
|
200 OK
400 Object not found
500 Persist exception
|
REST API |
POST: /api/rule/delete "application/json; charset=utf-8"
{
"id":"3"
}
|
{
"status":200,
"reason":"SUCCESS"
}
|
200 OK
400 Object not found
500 Persist exception
|
Здесь:
id
– идентификатор правила
Получение информации о правиле
Информацию о правиле можно получить при помощи запроса /api/rule/list
:
WS API |
SEND
destination:/app/api/rule/list
content-length:111
{
"requestId":"e9a2ce8c-ad2a-49c0-9c38-6ba8e4817fdd",
"realm":"/api/rule/list",
"payload":
{
"id":"1",
"profile":""
}
}
|
MESSAGE
destination:/user/service
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:3-22
content-length:161
{
"requestId":"e9a2ce8c-ad2a-49c0-9c38-6ba8e4817fdd",
"status":200,
"reason":"SUCCESS",
"payload": [
{
"id":1,
"profiles":[1,2],
"type":0,
"name":"default",
"value":".*"
}
]
}
|
200 OK
400 Object not found
500 Persist exception
|
REST API |
POST: /api/rule/list "application/json; charset=utf-8"
{
"id":"1",
"profile":""
}
|
{
"status": 200,
"reason": "SUCCESS",
"payload": [
{
"id": 1,
"profiles": [
1,
2
],
"type": 0,
"name": "default",
"value": ".*"
}
]
}
|
200 OK
400 Object not found
500 Persist exception
|
Здесь:
id
– идентификатор правила
profile
- идентификатор профиля
type
– тип правила (0
или 1
)
name
– имя правила
value
– значение правила (шаблон)
profiles
– список идентификаторов профилей, к которым применяется правило
Если указан идентификатор правила, то ответ будет содержать информацию только об этом правиле. Если указан идентификатор профиля, то ответ будет содержать информацию только о правилах, применяемых к метрикам данного профиля. Если ни тот, ни другой идентификатор не заданы, ответ будет содержать список всех правил на бэкенд-сервере.
Состав полей ответа аналогичен составу полей запроса /api/rule/update
.