开放平台,API服务,创建http接口,创建操作服务+模糊查询原创
金蝶云社区-吴锐雄
吴锐雄
12人赞赏了该文章 4,145次浏览 未经作者许可,禁止转载编辑于2021年03月23日 16:44:23
summary-icon摘要由AI智能服务提供

本文介绍了如何在云苍穹平台通过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

image.png


使用步骤:

1. 注册第三方应用,在开放平台下找到第三方应用,新增第三方应用信息,填写系统编码和系统密码等信息。

2. 获取appToken,根据第三方应用信息获取appToken。

3. 获取accessToken信息,用appToken和用户信息,从api/login.do中获取accessToken。

    api/login.do是云苍穹定义好的api功能,不需要注册或配置,直接使用即可。

4. 注册操作服务,配置好调用api访问链接、应用、业务对象。

5. 调用操作服务,携带accessToken调用操作服务或自定义服务。

6. 调用操作服务,增加模糊查询


使用步骤截图:

1. 注册第三方应用

进入开放平台,打开第三方应用列表

image.png

image.png

image.png


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中查看

image.png

accountId数据中心id在mc中查看

image.png

image.png

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

image.png


4.注册操作服务

进入开放平台,注册操作服务

image.png

image.png


5.调用操作服务

postMan访问配置好的开放api操作服务:

1.请求头里面配置好accessToken

image.png

2.配置好请求参数

http://localhost:8080/ierp/kapi/sys/wrx1_1011/query?select=billno,billstatus,creator,wrx1_textfield,org

billno,billstatus,creator,wrx1_textfield,org都是“单据测试1”这个单据的一些字段标识

image.png

查看返回的响应体结果,可以看到查询到了三组数据,把单据的全部数据查询了出来:

{

    "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

image.png


image.png

响应体的返回结果,可以看到查询到了一租数据:

{

    "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"

            ]

        ]

    }

}







图标赞 12
12人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!