Skip to content

开放RESTful API

leon edited this page Oct 20, 2021 · 2 revisions

开放RESTful API

Smart Discovery支持通过RESTful API方式实现动态规则发布。仅当条件规则配置采用配置中心的场景下(如nacos),通过RESTful API发布的动态规则将会持久化至配置中心上,否则只会保存至内存(如file配置方式)。

Smart Discovery支持file文件、Spring环境变量等local本地配置方式,同时也支持nacos、apollo配置中心方式实现dynamic动态配置。其中dynamic动态配置方式优先级高于local本地配置方式

获取规则配置

简要描述:

  • 获取所有的配置规则,其中dynamic动态配置规则将覆盖local本地配置规则

请求URL:

  • /api/discovery/rule

请求方式:

  • GET

返回示例

{
    "weights": [
        ...
    ],
    "discovery": [
        ...
    ],
    "routers": [
        ...
    ],
    "registers": [
        ...
    ]
}

获取local本地规则

简要描述:

  • 获取所有的local本地配置规则

请求URL:

  • /api/discovery/localrule

请求方式:

  • GET

返回示例

{
    "weights": [
        ...
    ],
    "discovery": [
        ...
    ],
    "routers": [
        ...
    ],
    "registers": [
        ...
    ]
}

获取dynamic动态规则

简要描述:

  • 获取所有的dynamic动态配置规则

请求URL:

  • /api/discovery/dynamicrule

请求方式:

  • GET

返回示例

{
    "weights": [
        ...
    ],
    "discovery": [
        ...
    ],
    "routers": [
        ...
    ],
    "registers": [
        ...
    ]
}

创建全局动态规则

简要描述:

  • 创建全局的dynamic动态配置规则

请求URL:

  • /api/discovery/dynamicrule

请求方式:

  • POST

参数:

参数名 参数描述
ruleConfig Body 配置规则JSON

请求参数示例

{
    "weights": [
        ...
    ],
    "discovery": [
        ...
    ],
    "routers": [
        ...
    ],
    "registers": [
        ...
    ]
}

创建服务路由动态规则

简要描述:

  • 创建全局的dynamic路由动态配置规则

请求URL:

  • /api/discovery/dynamicrule/routers

请求方式:

  • POST

参数:

参数名 参数描述
routerConfig Body 路由配置规则JSON

请求参数示例

[
    {
        "serviceId":"demoA"
        ...
    }
]

创建服务发现动态规则

简要描述:

  • 创建全局的dynamic服务发现动态配置规则

请求URL:

  • /api/discovery/dynamicrule/discovery

请求方式:

  • POST

参数:

参数名 参数描述
routerRule Body 服务发现配置规则JSON

请求参数示例

[
    {
        "serviceId":"demoA"
        ...
    }
]

创建服务注册动态规则

简要描述:

  • 创建全局的dynamic服务注册动态配置规则

请求URL:

  • /api/discovery/dynamicrule/registers

请求方式:

  • POST

参数:

参数名 参数描述
registerConfig Body 服务注册配置规则JSON

请求参数示例

[
    {
        "serviceId":"demoA"
        ...
    }
]

Clone this wiki locally