更新时间:2023-11-29 GMT+08:00
分享

创建规则

功能介绍

创建一条规则

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

URI

POST /v2/{project_id}/routemgr/rules

表1 路径参数

参数

是否必选

参数类型

描述

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

RuleConfig object

规则配置

表4 RuleConfig

参数

是否必选

参数类型

描述

description

String

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

ief_instance_id

String

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

in_using

Boolean

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

name

String

规则名称,只允许中文字符、英文字符、数字、下划线、中划线,最大长度64 同一个账号中创建的规则名唯一

source

String

源端点ID

source_resource

Map<String,String>

源端点资源。示例:

  • rest: {"path":"<standard uri format>"}

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

target

String

目的端点ID

target_resource

Map<String,String>

目的端点资源。示例:

  • 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

EndpointObjResp object

端点详情

source_resource

Map<String,String>

源端点资源。示例:

  • rest: {"path":"<standard uri format>"}

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

target

EndpointObjResp object

端点详情

target_resource

Map<String,String>

目的端点资源,示例:

  • dis: {"channel": "dis channel name"}

  • servicebus: {"path": "/request path"}

  • apigw: {"resource": "http://ssss.com"}

  • eventbus: {"topic": "/xxxx"}

updated_at

String

更新时间

success_messages

Integer

转发成功的消息数

表7 EndpointObjResp

参数

参数类型

描述

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

更新时间

请求示例

创建规则,规则名为“example”。

{
  "rule" : {
    "name" : "example",
    "description" : "",
    "target_resource" : {
      "topic" : "/hello"
    },
    "target" : "6bf2fda9-810c-40ed-8623-ff9396fe357d",
    "source" : "b98c3337-fb15-4548-8d11-63ae78f0cc82",
    "source_resource" : {
      "path" : "/abc"
    }
  }
}

响应示例

状态码: 201

ok

{
  "rule" : {
    "name" : "example",
    "description" : "",
    "source_resource" : {
      "path" : "/abc"
    },
    "target_resource" : {
      "topic" : "/hello"
    },
    "in_using" : true,
    "ief_instance_id" : "",
    "id" : "626d38cb-098f-4493-b48b-6d6e5ad1bc43",
    "project_id" : "ed202955e111444e8ced21a1bd75fc59",
    "created_at" : "2022-09-07T11:07:48Z",
    "updated_at" : "2022-09-07T11:07:48Z",
    "source" : {
      "name" : "SystemREST",
      "description" : "",
      "type" : "rest",
      "properties" : {
        "public" : "100.95.158.25"
      },
      "ief_instance_id" : "",
      "is_shared" : true,
      "id" : "b98c3337-fb15-4548-8d11-63ae78f0cc82",
      "project_id" : "9ff38382ccc546ac9635800c3315a5e2",
      "created_at" : "2019-03-09T11:42:45Z",
      "updated_at" : "2021-10-11T09:16:09Z"
    },
    "target" : {
      "name" : "SystemEventBus",
      "description" : "",
      "type" : "eventbus",
      "properties" : { },
      "ief_instance_id" : "",
      "is_shared" : true,
      "id" : "6bf2fda9-810c-40ed-8623-ff9396fe357d",
      "project_id" : "9ff38382ccc546ac9635800c3315a5e2",
      "created_at" : "2019-03-09T11:42:45Z",
      "updated_at" : "2021-10-11T09:16:09Z"
    },
    "fail_messages" : 0,
    "success_messages" : 0
  }
}

状态码

状态码

描述

201

ok

错误码

请参见错误码

相关文档