本地模式

说明

  • 主要介绍在单机环境下,然后使用本地 API 更新网关数据。

  • 统一返回结果:

  1. success
  • 统一请求前缀:localhost:9095/shenyu

  • 统一请求头:localKey: 123456

插件数据

新增或者更新插件

新增或者更新插件

请求方式

POST

请求路径

/plugin/saveOrUpdate

请求参数
名称类型是否必需默认值描述
PluginDataPluginDataTrue插件对象(Body里面传Json对象)

PluginData

名称类型是否必需默认值描述
idStringFalse插件ID
nameStringTrue插件名称
configStringFalse插件配置(Json格式)
roleStringFalse插件角色
enabledBooleanFalse是否开启
请求示例

POST body

  1. {"id":3,"name":"divide","enabled":"true"}

清空所有数据

清空所有插件,选择器,规则数据

请求方式

GET

请求路径

/cleanAll

清空插件数据

清空单个插件,选择器,规则数据

请求方式

GET

请求路径

/cleanPlugin?name = xxxx

Request参数
名称类型是否必需默认值描述
nameStringtrue插件名称

删除插件

删除单个插件(不包含,插件里面的选择器与规则)

请求方式

GET

请求路径

/plugin/delete?name = xxxx

Request参数
名称类型是否必需默认值描述
nameStringtrue插件名称

删除所有插件

删除所有插件(不包含,插件里面的选择器与规则)

请求方式

GET

请求路径

/plugin/deleteAll

获取插件

根据名称获取插件数据

请求方式

GET

请求路径

/plugin/findByName?name=xxxx

Request参数
名称类型是否必需默认值描述
nameStringtrue插件名称

新增或更新选择器

新增或者更新插件

请求方式

POST

请求路径

/plugin/selector/saveOrUpdate

请求参数
名称类型是否必需默认值描述
SelectorDataSelectorDataTrue选择器对象(Body里面传Json对象)

SelectorData

名称类型是否必需默认值描述
idStringFalse选择器ID
pluginNameStringTrue插件名称
nameStringFalse选择器名称(不填则默认生成 plugin:selector+随机数字)
matchModeIntegerFalse匹配模式(0:and;1:or),不填默认生成 And模式
typeIntegerFalse流量类型0:全流量;1:自定义流量)不填默认生成全流量
sortIntegerFalse排序 ,不填默认生成 10
enabledBooleanFalse是否开启,不填默认生成 true
loggedBooleanFalse是否打印日志,不填默认生成为false
handleStringFalse选择器处理(Json对象,根据每个插件不同,传的对象不同)
conditionListConditionFalse条件集合,自定义流量需要传,全流量不用传(Json List对象)

Condition

名称类型是否必需默认值描述
paramTypeStringTrue参数类型(post,uri,query,host,header,cookie,req_method,domain)
operatorStringTrue匹配方式(match,=,regex,>,<,contains,SpEL,Groovy,TimeBefore,TimeAfter)
paramNameStringFalse参数名称(uri 参数类型时候,可以不传)
paramValueIntegerFalse匹配值
请求示例

POST body

  1. {
  2. "pluginName": "divide",
  3. "type": 1,
  4. "handle": "[{\"upstreamUrl\":\"127.0.0.1:8089\"}]",
  5. "conditionDataList": [{
  6. "paramType": "uri",
  7. "operator": "match",
  8. "paramName": null,
  9. "paramValue": "/**"
  10. }]
  11. }
返回数据

选择器ID

  1. xxxxx

新增选择器与规则

新增一条选择器与多条规则

请求方式

POST

请求路径

/plugin/selectorAndRules

请求参数
名称类型是否必需默认值描述
SelectorRulesDataSelectorRulesDataTrue选择器规则对象(Body里面传Json对象)

SelectorRulesData

名称类型是否必需默认值描述
pluginNameStringTrue插件名称
selectorNameStringFalse选择器名称(不填则默认生成 plugin:selector+随机数字)
matchModeIntegerFalse匹配模式(0:and;1:or),不填默认生成 And模式
selectorHandlerStringFalse选择器处理(Json对象,根据每个插件不同,传的对象不同)
conditionListConditionDataTrue选择器条件集合(Json List对象)
ruleDataListRuleLocalDataTrue规则对象集合(Json List对象)

RuleLocalData

名称类型是否必需默认值描述
ruleNameStringFalse规则名称
ruleHandlerStringTrue规则处理(不同的插件传不同的值)
matchModeIntegerFalse匹配模式(0:and;1:or)
conditionListConditionDataTrue规则条件集合(Json List对象)

ConditionData

名称类型是否必需默认值描述
paramTypeStringTrue参数类型(post,uri,query,host,header,cookie,req_method,domain)
operatorStringTrue匹配方式(match,=,regex,>,<,contains,SpEL,Groovy,TimeBefore,TimeAfter)
paramNameStringFalse参数名称(uri 参数类型时候,可以不传)
paramValueIntegerFalse匹配值
请求示例

POST body

  1. {
  2. "pluginName": "divide",
  3. "selectorHandler": "[{\"upstreamUrl\":\"127.0.0.1:8089\"}]",
  4. "conditionDataList": [{
  5. "paramType": "uri",
  6. "operator": "match",
  7. "paramValue": "/http/**"
  8. }],
  9. "ruleDataList": [{
  10. "ruleHandler": "{\"loadBalance\":\"random\"}",
  11. "conditionDataList": [{
  12. "paramType": "uri",
  13. "operator": "=",
  14. "paramValue": "/http/test/payment"
  15. }]
  16. }, {
  17. "ruleHandler": "{\"loadBalance\":\"random\"}",
  18. "conditionDataList": [{
  19. "paramType": "uri",
  20. "operator": "=",
  21. "paramValue": "/http/order/save"
  22. }]
  23. }]
  24. }

删除选择器

根据选择器id与插件名称删除选择器

请求方式

GET

请求路径

/plugin/selector/delete?pluginName=xxxx&&id=xxxx

Request参数
名称类型是否必需默认值描述
pluginNameStringtrue插件名称
idStringtrue选择器id

获取插件下的所有选择器

根据插件名称获取所有选择器

请求方式

GET

请求路径

/plugin/selector/findList?pluginName=xxxx

Request参数
名称类型是否必需默认值描述
pluginNameStringtrue插件名称

新增或更新规则

新增或者更新规则数据

请求方式

POST

请求路径

/plugin/rule/saveOrUpdate

请求参数
名称类型是否必需默认值描述
RuleDataRuleDataTrue规则对象(Body里面传Json对象)

RuleData

名称类型是否必需默认值描述
idStringFalse规则ID
pluginNameStringTrue插件名称
nameStringFalse规则名称(不填则默认生成 plugin:rule+随机数字)
selectorIdStringTrue选择器ID(不填则默认生成 plugin:rule+随机数字)
matchModeIntegerFalse匹配模式(0:and;1:or),不填默认生成 And模式
sortIntegerFalse排序 ,不填默认生成 10
enabledBooleanFalse是否开启,不填默认生成 true
loggedBooleanFalse是否打印日志,不填默认生成为false
handleStringFalse规则处理(Json对象,根据每个插件不同,传的对象不同)
conditionListConditionDataFalse条件集合(Json List对象)

conditionList

名称类型是否必需默认值描述
paramTypeStringTrue参数类型(post,uri,query,host,header,cookie,req_method,domain)
operatorStringTrue匹配方式(match,=,regex,>,<,contains,SpEL,Groovy,TimeBefore,TimeAfter)
paramNameStringFalse参数名称(uri 参数类型时候,可以不传)
paramValueIntegerFalse匹配值
请求示例

POST body

  1. {
  2. "pluginName": "divide",
  3. "selectorId": 123456,
  4. "handle": "{\"loadBalance\":\"random\"}",
  5. "conditionDataList": [{
  6. "paramType": "uri",
  7. "operator": "=",
  8. "paramValue": "/test"
  9. }]
  10. }
返回数据

规则ID

  1. xxxxx

删除规则

根据选择器id与规则id删除规则

请求方式

GET

请求路径

/plugin/rule/delete?selectorId=xxxx&&id=xxxx

Request参数
名称类型是否必需默认值描述
selectorIdStringtrue选择器ID
idStringtrue规则ID

获取规则集合

根据选择器ID获取所有规则

请求方式

GET

请求路径

/plugin/rule/findList?selectorId=xxxx

Request参数
名称类型是否必需默认值描述
selectorIdStringtrue选择器ID

元数据

新增或者更新元数据

新增或者更新元数据

请求方式

POST

请求路径

/meta/saveOrUpdate

请求参数
名称类型是否必需默认值描述
MetaDataMetaDataTrue元数据对象(Body里面传Json对象)

MetaData

名称类型是否必需默认值描述
idStringFalse元数据ID
appNameStringTrue应用名称
contextPathStringTruecontextPath
pathStringTrue请求路径
rpcTypeStringTruerpc类型(dubbo,sofa,tars,springCloud,motan,grpc)
serviceNameStringTrue接口名称
methodNameStringTrue方法名称
parameterTypesStringTrue参数类型
rpcExtStringFalserpc扩展参数(json对象)
enabledBooleanFalse是否开启

删除元数据

删除元数据

请求方式

GET

请求路径

/meta/delete?rpcType=xxxx&&path=xxx

Request参数
名称类型是否必需默认值描述
rpcTypeStringtruerpc类型(dubbo,sofa,tars,springCloud,motan,grpc)
pathStringtrue路径

签名数据

新增或者更新

新增或者更新签名数据

请求方式

POST

请求路径

/auth/saveOrUpdate

请求参数
名称类型是否必需默认值描述
AppAuthDataAppAuthDataTrue签名对象(Body里面传Json对象)

AppAuthData

名称类型是否必需默认值描述
appKeyStringTrueapp key
appSecretStringTrueapp secret
enabledBooleanFalse是否开启
openBooleanFalse是否是开放平台
paramDataListAuthParamDatafalse参数集合,open为true时候需要传(Json list对象)
AuthPathDataAuthPathDatafalse路径集合,open为true时候需要传(Json list对象)

AuthParamData

名称类型是否必需默认值描述
appNameStringTrue应用名称
appParamStringTrue应用参数

AuthPathData

名称类型是否必需默认值描述
appNameStringTrue应用名称
pathStringTrue路径
enabledBooleanFalse是否开启

删除

删除签名数据

请求方式

GET

请求路径

/auth/delete?appKey=xxxx

Request参数
名称类型是否必需默认值描述
appKeyStringtrueapp key