如何通过ODM Decision Center API访问自定义配置参数
访问ODM Decision Center自定义配置参数的API指南
刚好在最近的ODM项目里折腾过这个,给你详细说下怎么用API访问自定义配置参数,还有通用的配置参数访问方法:
一、先搞定认证(必做前置步骤)
不管你用REST API还是Java客户端,第一步都是过认证:
- REST API:最常用的是Basic Auth,把用户名密码用Base64编码后放在
Authorization头里;如果你的环境用OAuth2,就先调用token端点拿到Bearer Token再用。 - Java API:直接在客户端初始化时传入用户名密码或者token即可。
二、访问通过向导创建的自定义全局配置参数
你通过Decision Center > Configure > Installation Settings Wizard > Step5创建的参数属于全局配置参数,所有项目都能访问,对应的API操作如下:
1. REST API方式
获取所有全局配置参数(包括自定义的)
用GET请求调用全局配置端点,会返回所有参数的键值对列表:
curl -X GET "http://<DC_HOST>:<DC_PORT>/decisioncenter/api/v1/configurations/global" \ -H "Authorization: Basic <BASE64_USER_PASS>" \ -H "Accept: application/json"
返回的JSON结构里,properties数组就是所有参数,你可以从中找到自己创建的自定义参数,比如:
{ "properties": [ {"key": "my.custom.param", "value": "my-test-value"}, // 其他系统默认参数... ] }
单独获取某个自定义参数
如果你知道参数的键名,直接用GET请求指定键的端点,更高效:
curl -X GET "http://<DC_HOST>:<DC_PORT>/decisioncenter/api/v1/configurations/global/my.custom.param" \ -H "Authorization: Basic <BASE64_USER_PASS>" \ -H "Accept: application/json"
返回结果就是该参数的具体值,比如"my-test-value"。
2. Java API方式
如果你用ODM提供的Java客户端库,可以直接通过ConfigurationService来获取:
// 初始化Decision Center客户端 DecisionCenter dcClient = DecisionCenter.newInstance() .setEndpoint("http://<DC_HOST>:<DC_PORT>/decisioncenter") .setCredentials("admin", "password") .build(); // 获取配置服务 ConfigurationService configService = dcClient.getConfigurationService(); // 读取自定义全局参数 String customParamValue = configService.getGlobalConfigurationProperty("my.custom.param"); System.out.println("自定义参数值:" + customParamValue);
三、访问配置参数的通用方法
除了全局参数,Decision Center还有项目级配置参数,这里给你整理通用的API规则:
1. 区分全局/项目级参数
- 全局参数:对应端点
/decisioncenter/api/v1/configurations/global,适用所有项目,就是你通过向导创建的那种。 - 项目级参数:对应端点
/decisioncenter/api/v1/projects/{projectId}/configurations,只针对某个特定项目,需要替换{projectId}为你的项目ID。
2. 常用API操作
- 获取单个参数:在对应端点后加
/{key}即可(比如全局的/global/my.key,项目级的/projects/{id}/configurations/my.key)。 - 修改参数值:用
PUT请求,把新值放在请求体里,比如修改全局参数:curl -X PUT "http://<DC_HOST>:<DC_PORT>/decisioncenter/api/v1/configurations/global/my.custom.param" \ -H "Authorization: Basic <BASE64_USER_PASS>" \ -H "Content-Type: text/plain" \ -d "new-value" - 权限要求:调用这些API的用户需要有
Configurator或Administrator角色,否则会返回403错误。
3. 版本差异注意
如果你的ODM版本低于8.10,REST API的端点可能略有不同(比如8.9的全局参数端点是/decisioncenter/rest/configurations/global),如果用的是旧版本,记得对应调整路径。
内容的提问来源于stack exchange,提问作者freecouch
相关产品推荐
相关产品推荐

