本文介绍了如何在云苍穹平台通过OpenApi调用HTTP接口以获取单据数据的过程。步骤包括注册第三方应用、获取appToken和accessToken、注册并调用操作服务进行数据查询,包括如何进行模糊查询。文章还提供了详细的API使用示例,如通过PostMan测试接口,并详细说明了查询参数的使用,如select、orderby、filter等。
如果文章对您有帮助,请为我点击一个朴实无华的赞^_^
需求场景:
开发者需要通过http接口调用云苍穹,获取单据的数据。
对开发平台,即OpenApi,一些个人的理解:
在日常开发中,我们有时候需要在非云苍穹的系统或者服务上,通过http来调用云苍穹,例如获取一些单据数据。
开放平台就提供了这样一个功能,支持快速定义单据页面的http接口,开发者只需要在开放平台简单配置一下,就能生成一个http接口,供其他微服务调用,我们还可以用postMan等接口测试工具,测试和调用这个http接口。
案例将展示如何定义操作服务,创建http接口,如何调用获取单据数据。
如果开发者想要更自由地组合云苍穹的数据,请查看我的另一篇文章:
https://club.kdcloud.com/article/154241666411380736
API服务官方文档:
api服务分三种,操作服务、自定义服务,AI服务。
常用的是操作服务、自定义服务。
社区官方资料:
https://club.kdcloud.com/knowledge#tabMain
使用步骤:
1. 注册第三方应用,在开放平台下找到第三方应用,新增第三方应用信息,填写系统编码和系统密码等信息。
2. 获取appToken,根据第三方应用信息获取appToken。
3. 获取accessToken信息,用appToken和用户信息,从api/login.do中获取accessToken。
api/login.do是云苍穹定义好的api功能,不需要注册或配置,直接使用即可。
4. 注册操作服务,配置好调用api访问链接、应用、业务对象。
5. 调用操作服务,携带accessToken调用操作服务或自定义服务。
6. 调用操作服务,增加模糊查询
使用步骤截图:
1. 注册第三方应用
进入开放平台,打开第三方应用列表
2. 获取appToken
第三方应用注册完成之后,用postMan构造post请求
请求链接:
http://127.0.0.1:8080/ierp/api/getAppToken.do
请求参数:
请求体,appId是第三方应用的系统编码,appSecuret第三方应用的系统密码,tenantId租户id,accountId数据中心id,
{
"appId":"wrx_th_service",
"appSecuret":"123456",
"tenantid":"cosmic-simple",
"accountId":"855027130579288064",
"language":"zh_CN"
}
tenantId租户id在mc中查看
accountId数据中心id在mc中查看
3.获取accesstoken
请求链接:
http://localhost:8080/ierp/api/login.do
请求体:
user是用户名,这里填写登录时的手机号;
usertype登录方式是手机号登录,默认填写为"Mobile";
tenantId租户id;accountId数据中心id。
{
"user":"1370000000",
"apptoken":"8e2646a4-01e2-4c9a-9375-748f06d94ba1",
"tenantid":"cosmic-simple",
"accountId":"855027130579288064",
"usertype":"Mobile",
"language":"zh_CN"
}
如下图,响应体中获取到了accesstoken
4.注册操作服务
进入开放平台,注册操作服务
5.调用操作服务
postMan访问配置好的开放api操作服务:
1.请求头里面配置好accessToken
2.配置好请求参数
billno,billstatus,creator,wrx1_textfield,org都是“单据测试1”这个单据的一些字段标识
查看返回的响应体结果,可以看到查询到了三组数据,把单据的全部数据查询了出来:
{
"success": "true",
"data": {
"count": 3,
"header": [
{
"name": "billno",
"caption": "单据编号",
"type": "String"
},
{
"name": "billstatus",
"caption": "单据状态",
"type": "String"
},
{
"name": "creator",
"caption": "创建人",
"type": "long"
},
{
"name": "wrx1_textfield",
"caption": "单据测试",
"type": "String"
},
{
"name": "org",
"caption": "组织",
"type": "long"
}
],
"rows": [
[
"101",
"A",
"1027464302652556288",
"测试",
"100000"
],
[
"102",
"A",
"1027464302652556288",
"案例",
"100000"
],
[
"103",
"A",
"1027464302652556288",
"十多个",
"100000"
]
]
}
}
除了select可以作为请求参数之外,还有排序orderby,过滤filter,分页信息page_no、page_size可以作为请求参数。具体使用方法,请查看官方知识区的链接:
https://club.kdcloud.com/article/88946348577177088
6.操作服务,模糊查询
在第5步的基础上,api开放链接中,增加过滤请求参数filter,如下:
http://localhost:8080/ierp/kapi/sys/wrx1_1011/query?select=billno,billstatus,creator,wrx1_textfield,org&filter=wrx1_textfield CS %25%E5%A4%9A%25
这个模糊查询类似于sql中,like关键字的查询
filter的值的意思是指,查询字段wrx1_textfield,当值为"%多%"时,获取返回结果
CS后面的数据要进行encode转码,即URL转码,转码这一步可以在网上找一个encode线上转码网站去制作
例如:http://www.jsons.cn/urlencode/
模糊查询wrx1_textfield 为中间有“多”字符的数据行:%多% -> %25%E5%A4%9A%25
响应体的返回结果,可以看到查询到了一租数据:
{
"success": "true",
"data": {
"count": 3,
"header": [
{
"name": "billno",
"caption": "单据编号",
"type": "String"
},
{
"name": "billstatus",
"caption": "单据状态",
"type": "String"
},
{
"name": "creator",
"caption": "创建人",
"type": "long"
},
{
"name": "wrx1_textfield",
"caption": "单据测试",
"type": "String"
},
{
"name": "org",
"caption": "组织",
"type": "long"
}
],
"rows": [
[
"103",
"A",
"1027464302652556288",
"十多个",
"100000"
]
]
}
}
推荐阅读