路由管理
1.新增路由
接口功能介绍
无
接口约束
无
URI
POST /cgw/v1/route/create
Content-Type: application/json
路径参数
Query参数
请求参数
请求头header参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
regionId | 是 | String | 资源池编码 | 7a2828074ef6e32e041a2ef124b19e63 |
请求体body参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
cookiePredicates | 否 | Array of Objects | 请求参数(Cookie)匹配,区分大小写 | Predicate | |
description | 是 | String | 路由描述 | 用于灰度测试的路由 | |
destinationType | 否 | String | 目标服务类型:single:单服务;multiple:多服务;version_oriented:标签路由;Mock: Mock路由 | Single | |
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 | |
status | 是 | Integer | 路由状态 | 0 | |
upstreamList | 否 | Array of Objects | 目标服务 | DestinationUpstream | |
uri | 是 | String | 路径 | /app/a |
表 Predicate
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
key | 否 | String | KEY | name | |
type | 否 | String | 匹配类型,==:等于,~~=:不等于,>:大于,>=:大于等于,<:小于,<=:小于等于,~~:正则匹配,~~*:正则匹配(不区分大小写),IN:存在于,HAS:包含,!:非 | == | |
value | 否 | String | 值 | tom |
表 MockResponse
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
code | 否 | Integer | Mock路由响应code | 200 | |
responseJson | 否 | String | Mock路由响应体json | {“hello”: “world”} |
表 Redirect
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
code | 否 | Integer | 重定向code | 301 | |
uri | 否 | String | 重定向uri | /app/b |
表 RouteTagNormalizeDTO
routeTagNormalize非空时
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
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 |
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": {}
}
状态码
请参考 状态码说明。
错误码
请参考 错误码说明。