Demo-新版OpenAPI使用
更新时间: 2024-08-28 11:56:44
阅读 5175
DEMO-OpenAPI使用
适用模块
OpenAPI
具体说明
调用接口时的通用规范,对所有OpenAPI都适用,OpenAPI列表与详情请查看各个子产品的OpenAPI文档说明: https://study.sf.163.com/documents/read/easyopenapi/openapi_list.md
使用示例
1、获取OpenAPI统一入口域名
打开获得http://bigdata-demo3.jdlt.163.org:10098/api/system/check
OpenAPI统一入口域名即为http://bigdata-demo3.jdlt.163.org:10098
2、请求地址拼接
请求地址由三个部分组成,分别是openapi统一入口域名、子产品调用前缀、子产品功能URI。例如:
http://IP:port/openapi/easydataservice/v1/app/get
其中http://IP:port为统一入口域名,/openapi/easydataservice为子产品调用前缀,/v1/app/get为子产品功能URI
3、鉴权信息
系统为调用者分别应用身份,每个应用都有唯一的accessKey和secretKey。在使用aksk鉴权方式时,需要在入参中携带authType(值为AKSK)、timestamp(5分钟内的毫秒时间戳)、accessKey、sig(由secretKey计算出)。
3.1、生成鉴权信息
curl-X POST "http://easyopenapi域名/api/opt/app/insert?xxx"
注:easyopenapi1.0.2.4版本新增owner参数=用个人账号或者项目账号,appName=可以任意最好是调动的业务项目英文名称,如BI系统就用bi_test。参考案例如下
curl -X POST "http://easyopenapi域名/api/opt/app/insert?owner=admin.mammut@163.com&appName=bi_test"
请求示例:
curl -X POST "http://bigdata-demo3.jdlt.163.org:10098/api/opt/app/insert?owner=admin.mammut@163.com&appName=bi_test"
{
"code": 0,
"msg": "success",
"result": {
"id": 2,
"appName": "xxx",这个appName,一般使用调用方系统的英文名称
"accessKey": "fcb2e0b391c0498ba2fadc85c1018f7b",
"secretKey": "3e6e5a17cd3d4cb389a488c54ee4706d",
"createTime": null,
"updateTime": null
},
"reqId": "8821f5c6d9ec4fe1aea778f4bc18d092",
"cost": 1364
}
注意:
1.如果忘记key的话,第二次调用将不会返回相关key,需要从数据库easyopenapi.openapi_app获取。
2.一般调用申请接口的key都是项目管理员来统一分配key,便于权限集中管理和安全。
数据库获取信息
3.2、GET方法时,以上参数放在uri中,例如:
&authType=AKSK×tamp=1646813499000&accessKey=
fcb2e0b391c0498ba2fadc85c1018f7b&sig=818dc0bb904cc75fa935cb96e0fc9473
3.3、POST方法时,以上参数放在request body里,例如:
{
"authType":"AKSK",
"timestamp":1646813499000,
"accessKey":"fcb2e0b391c0498ba2fadc85c1018f7b",
"sig":"818dc0bb904cc75fa935cb96e0fc9473"
}
其中sig的计算方法为:
sig = md5(secretKey+timestamp) 其中+号表示拼接操作,sig为小32位
4、接口请求
- GET请求:
当调用的接口为GET方法时,请求参数只能放置在调用地址的URL中
curl -X GET 'http://easydemo-prod-openapi.163yun.com/openapi/easymetahub/lineage/v1/table/get?datasourceId=1&product=poc&user=admin.mammut@163.com&db=poc&table=xxx&direction=up&authType=AKSK×tamp=1689770024232&accessKey=xxx&sig=xxx'
- POST请求:
当调用的接口为POST方法时,请求参数只能以json格式(请求头中需要指定Content-Type: application/json)放置在Request Body
curl -X POST -H 'Content-Type: application/json' http://easy-openapi.bdms.service.163.org/openapi/easydataservice/api/v1/app/add -d '{"user": "user@163.com", "product": "product1", "appName": "app1", "appDesc":"xxxxxxxxxxxx", "authType":"AKSK", "timestamp":1232423123, "accessKey":"yyyyy", "sig":"zzzzzz"}'
作者:林帅
文档反馈
以上内容对您是否有帮助?