添加网关路由
更新时间 2026-03-13 16:16:24
最近更新时间: 2026-03-13 16:16:24
接口功能介绍
添加网关路由
接口约束
无
URI
POST /cgw/v1/route/create
路径参数 无
Query参数 无
请求参数
请求头header参数
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|---|
| regionId | 是 | String | 资源池编码 | 7a2828074ef6e32e041a2ef124b19e63 |
请求体body参数
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|---|
| cookiePredicates | 否 | Array of Objects | 请求参数(Cookie)匹配,区分大小写 | Predicate | |
| description | 否 | String | 路由描述 | 用于灰度测试的路由 | |
| destinationType | 是 | String | 目标服务类型:single:单服务;multiple:多服务;version_oriented:标签路由;mock: Mock路由, redirect: 重定向,dubbo_proxy:dubbo代理 | single | |
| dubboProxy | 否 | Object | dubbo代理路由时需要填写 | DubboProxyDTO | |
| headerPredicates | 否 | Array of Objects | 请求头(Header)匹配 | Predicate | |
| hosts | 否 | Array of Strings | 域名 | ["test.com"] | |
| instId | 是 | String | 实例Id | 7a9n7g6d4ef6e32e041a2ef124b19e63 | |
| methods | 否 | Array of Strings | HTTP方法,为空表示包含所有方法 | ["GET"] | |
| mockResponse | 否 | Object | Mock路由响应体 | MockResponse | |
| name | 是 | String | 名称 | test | |
| priority | 否 | Integer | 优先级,默认值为0 | 12 | |
| queryPredicates | 否 | Array of Objects | 请求参数(Query)匹配 | Predicate | |
| redirect | 否 | Object | 重定向 | Redirect | |
| routeAuthType | 否 | String | 认证方式,默认值为NOAUTH | NOAUTH | |
| routeTagNormalize | 否 | Object | 路由参数规整化 | RouteTagNormalizeDTO | |
| routeTagNormalizedFlag | 否 | Boolean | 是否启用路由参数规整化处理 | false | |
| status | 是 | Integer | 路由状态 | 0 | |
| type | 否 | String | 创建来源,默认值control | ||
| upstreamList | 否 | Array of Objects | 目标服务 | DestinationUpstream | |
| uri | 是 | String | 路径 | /app/a |
表 Predicate
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|---|
| key | 否 | String | KEY | name | |
| type | 否 | String | 匹配类型,==:等于,~~=:不等于,>:大于,>=:大于等于,<:小于,<=:小于等于,~~:正则匹配,~~*:正则匹配(不区分大小写),IN:存在于 | == | |
| value | 否 | String | 值 | tom |
表 MockResponse
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|---|
| code | 否 | Integer | Mock路由响应code | 200 | |
| responseJson | 否 | String | Mock路由响应体json | {“hello”: “world”} |
表 DubboProxyDTO
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|---|
| method | 否 | String | dubbo服务方法,调用的dubbo方法名。路由为dubbo代理类型时不可为空 | dubboMethod | |
| serviceName | 否 | String | dubbo服务名,传入服务完整包名。路由为dubbo代理类型时不可为空 | com.test.a.dubbo.service | |
| serviceVersion | 否 | String | dubbo服务版本。默认值:"0.0.0" | 0.0.0 |
表 Redirect
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|---|
| code | 否 | Integer | 重定向code | 301 | |
| uri | 否 | String | 重定向uri | /app/b |
表 RouteTagNormalizeDTO
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|---|
| hashFlag | 是 | Boolean | 是否进行hash | false | |
| moduloOperationValue | 是 | Integer | 取模数值 | 100 | |
| paramLocation | 是 | String | 参数位置,支持header, query, cookie | header | |
| paramName | 是 | String | 参数名称 | id | |
| tagExactValues | 否 | Array of Integers | 精确型标记取值,传入匹配值 | [1001, 1002] | |
| tagRangeValueList | 否 | Array of Objects | 范围型标记取值,传入最大和最小值。支持传入多组范围,多组范围之间是或关系 | TagRangeDTO | |
| tagType | 是 | String | 标记类型。范围:range, 0~~1000 or 2000~~3000;精确:exact: 0,1,2 | exact |
表 TagRangeDTO
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|---|
| includeMax | 否 | Boolean | 是否包含最大值 | false | |
| includeMin | 否 | Boolean | 是否包含最小值 | false | |
| max | 否 | Integer | 范围上限 | 1000 | |
| min | 否 | Integer | 范围下限 | 1 |
表 DestinationUpstream
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|---|
| upstreamId | 是 | String | 目标服务id | 7a2828074ef6e32e041a2ef124b19e63 | |
| upstreamName | 是 | String | 服务名 | svc-test | |
| upstreamType | 是 | String | 服务类型 | control | |
| versionId | 否 | String | 服务的版本id,用于标签路由 | 10000 | |
| versionName | 否 | String | 服务的版本名称,用于标签路由 | v1 | |
| weight | 否 | Integer | 服务权重。多服务,标签路由等需要设置服务权重时传入 | 100 |
响应参数
| 参数 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|
| statusCode | Integer | 接口状态码 | 2000 | |
| code | String | 错误码,异常时非空 | CGW_1001 | |
| returnObj | Object | 返回数据 | ||
| message | String | 异常描述 | success |
枚举参数
无
请求示例
请求url
https://127.0.0.1:8080/cgw/v1/route/create
请求头header
{
"regionId": "1234567890"
}
请求体body
{
"name": "test1",
"destinationType": "redirect",
"host": null,
"methods": [
"PATCH",
"HEAD",
"OPTIONS",
"DELETE",
"PUT",
"POST",
"GET",
"TRACE",
"CONNECT"
],
"priority": "10",
"queryPredicates": [
{
"key": "id",
"type": "==",
"value": "123"
}
],
"headerPredicates": [
{
"key": "num",
"type": "==",
"value": "1"
}
],
"uri": "/test1",
"status": 0,
"redirect": {
"code": 301,
"uri": "/testone"
},
"instId": "878da73f7dba36ff0ae80e004a4f28f9"
}
响应示例
{
"statusCode": 2000,
"message": "success",
"returnObj": {}
}
状态码
请参考 状态码
错误码
请参考 错误码