# 服务授权
三方客户端使用客户端凭证调用各个模型OpenAPI前,需要给客户端配置服务授权 —— 设置其能访问的模型范围和各个模型的行列权限以及数据维护API权限(增删改查等)。
访问路径:【主数据业务门户】 -> 【数据分发】 -> 【服务授权】
# 配置授权
新增或编辑已配置授权,选择数据模型和服务客户端,配置模型的行列权限以及该模型的数据维护API权限。
# 行列权限配置
这块配置与数据推送和AFCenter平台角色(MDM数据角色)模型授权配置以及数据推送配置类似。
# OpenAPI服务权限
选择允许此客户端调用的API列表。
# OpenAPI调用
客户端凭证放在HTTP请求头中传递。
# e.g. GET方式查询学生模型的业务数据
curl --location 'http://10.15.15.169:28090/api/mdm/openapi/school_student/query?pageIndex=0&pageSize=10' \
--header 'Accept: application/json' \
--header 'x-mdm-client-code: oa' \
--header 'x-mdm-client-secret: 2decE5789fDfc24DBD798e43f5439C38cC99'
部分查询API支持响应结果以密文方式传输。
# e.g. GET方式查询学生模型的业务数据(客户端需要对获取的密文进行解码后才能获得原始JSON数据,如果客户端配置启用gzip压缩那得先解压缩后才能进行解码操作)
curl --location 'http://10.15.15.169:28090/api/mdm/openapi/school_student/query?pageIndex=0&pageSize=10' \
--header 'Accept: application/octet-stream' \
--header 'x-mdm-client-code: oa' \
--header 'x-mdm-client-secret: 2decE5789fDfc24DBD798e43f5439C38cC99'
客户端凭证第二种传递方式:使用请求头Authorization
传递,值为 Basic ${BASE64("{CLIENT_CODE}:{CLIENT_SECRET}")}
curl --location 'http://10.15.15.169:28090/api/mdm/openapi/school_student/query?pageIndex=0&pageSize=10' \
--header 'Accept: application/json' \
--user 'oa:2decE5789fDfc24DBD798e43f5439C38cC99' # Basic Authorization
# or
curl --location 'http://10.15.15.169:28090/api/mdm/openapi/school_student/query?pageIndex=0&pageSize=10' \
--header 'Accept: application/json' \
--header 'Authorization: Basic b2E6MmRlY0U1Nzg5ZkRmYzI0REJENzk4ZTQzZjU0MzlDMzhjQzk5'
为方便下游系统做业务集成主数据提供了2个全能API调用(代理),被代理目标API调用不含报文体情况下建议使用GET [API-27]
,含报文体情况下建议使用POST [API-28]
,使用查询参数action={n}
指定需要调用的API(服务列表里可以查看各个API的编号),原路径URL#PATH
上的参数:数据模型编码dataModelCode
和数据IDid
等全都改为查询参数方式传递。
curl -XPOST --location 'http://10.15.15.169:28090/api/mdm/openapi?action=2&dataModelCode=school_student&pageIndex=0&pageSize=10' \
--header 'Accept: application/json' \
--header 'x-mdm-client-code: oa' \
--header 'x-mdm-client-secret: 2decE5789fDfc24DBD798e43f5439C38cC99' \
--header 'Content-Type: application/json' \
--data '{
"args": [
{
"name": "gender",
"matchValue": "M"
},
{
"name": "name",
"matchType": "starts_with",
"matchValue": "上官"
}
]
}'