更新时间:2024-04-22 GMT+08:00

创建规则

功能介绍

该API用于创建一条规则。

URI

POST /v2/{project_id}/routemgr/rules

表1 Path参数

参数

是否必选

参数类型

描述

project_id

String

项目ID

请求参数

表2 请求Header参数

参数

是否必选

类型

描述

Content-Type

String

消息体的类型(格式)

推荐您使用默认值application/json。

X-Auth-Token

String

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

ief-instance-id

String

铂金版实例ID,专业版实例为空值

表3 请求Body参数

参数

是否必选

参数类型

描述

rule

Rule object

规则详情

表4 Rule

参数

是否必选

参数类型

描述

description

String

规则描述,最大长度255,不允许^~#$%&*<>()[]{}'"\

ief_instance_id

String

铂金版实例ID,如果为空则表示是专业版实例。

in_using

Boolean

是否启用规则,默认为true(启用)

name

String

规则名称,只允许中文字符、英文字符、数字、下划线、中划线,最大长度64

同一个账号中创建的规则名唯一

source

String

源端点ID

source_resource

Map<String,Object>

源端点资源。

示例:

  • rest:path取值需要为标准URI格式。
    {"path":"/a/b/c"}
  • eventbus:
    {"topic": "<project id>/nodes/<node id>/user/<租户自定义且满足eventbus topic要求的字符串>","node_id":"<node id>"}

target

String

目的端点ID

target_resource

Map<String,Object>

目的端点资源,示例:

  • dis:
    {"channel": "dis channel name"}
  • servicebus:
    {"path": "/request path"}
  • apigw:
    {"resource": "http://ssss.com"}
  • eventbus:
    {"topic": "/xxxx"}

响应参数

状态码为 201 时:

表5 响应Body参数

参数

参数类型

描述

rule

RuleResponse object

规则详情

表6 RuleResponse

参数

参数类型

描述

created_at

String

创建时间

description

String

规则描述,最大长度255,不允许^~#$%&*<>()[]{}'"\

fail_messages

Integer

转发失败的消息数

id

String

规则ID

ief_instance_id

String

铂金版实例ID,如果为空则表示是专业版实例。

in_using

Boolean

是否启用规则,默认为true(启用)

name

String

规则名称,只允许中文字符、英文字符、数字、下划线、中划线,最大长度64

同一个账号中创建的规则名唯一

project_id

String

项目ID

source

EndpointResponse object

源端点信息

source_resource

Map<String,Object>

源端点资源,示例:

  • rest:
    {"path":"<standard uri format>"}
  • eventbus:
    {"topic": "<project id>/nodes/<node id>/user/<租户自定义且满足eventbus topic要求的字符串>","node_id":"<node id>"}

success_messages

Integer

转发成功的消息数

target

EndpointResponse object

目标端点信息

target_resource

Map<String,Object>

目的端点资源,示例:

  • dis:
    {"channel": "dis channel name"}
  • servicebus:
    {"path": "/request path"}
  • apigw:
    {"resource": "http://ssss.com"}
  • eventbus:
    {"topic": "/xxxx"}

updated_at

String

更新时间

表7 EndpointResponse

参数

参数类型

描述

created_at

String

创建时间

description

String

端点描述,最大长度255,不允许^~#$%&*<>()[]{}'"\

id

String

端点ID

ief_instance_id

String

铂金版实例ID,如果为空则表示是专业版实例。

is_shared

Boolean

是否共享

name

String

端点名称,只允许中文字符、英文字符、数字、下划线、中划线,最大长度64

同一个账号中创建的端点名唯一

project_id

String

项目ID

properties

Map<String,Object>

端点的属性,端点需要对外展示的属性,示例:

  • dis:
    {"domain_id":"user's domain id"}
  • servicebus:
    {"service_port":8080}
  • apigw:
    {"domain_id":"user's domain id"}

type

String

端点类型

枚举值:

  • dis
  • servicebus
  • apigw

updated_at

String

更新时间

状态码为 400 时:

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_message

String

错误信息

状态码为 401 时:

表9 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_message

String

错误信息

状态码为 500 时:

表10 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_message

String

错误信息

请求示例

{
  "rule" : {
    "name" : "haha",
    "source" : "88626dd0-0616-47c0-9980-e702e0fb8f7c",
    "source_resource" : {
      "topic" : "d16e6eb6cc0d49a0941df2f31285757a/device/c978f393-d80a-4aa0-b182-ec8ae879bab8/messages/#",
      "node_id" : "f90347b6-9659-4f8b-a839-f9396696b2fb"
    },
    "target" : "e7d02d47-961d-4e65-9f15-856272983ca9",
    "target_resource" : {
      "channel" : "AAA"
    }
  }
}

响应示例

状态码

状态码

描述

201

创建成功

400

错误响应

401

错误响应

500

错误响应

错误码

请参见错误码