电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

#实践案例#Python插件变通实现自定义WebAPI接口查询报表

来源:金蝶云社区作者:金蝶2024-09-164

#实践案例#Python插件变通实现自定义WebAPI接口查询报表

一、业务背景

    小伙伴们实践了Python插件开发后,觉得很方便,很多小伙伴就问我,Python能不能做自定义WebAPI接口?

    大家知道,Python插件是在BOS平台进行注册使用的,而自定义WebAPI接口本质上还是继承特殊的基类AbstractWebApiBusinessService来开发插件发布到应用服务器,进行调用的,但目前是无法通过Python来开发这种插件,所以Python插件是不能用这种方式来开发自定义WebAPI接口的!

    C#自定义WebAPI接口可以参考:


    标准的WebAPI接口对应单据的各种操作已经很全面了,但是有很多集成需求,是需要读取系统已有报表的数据,版本新一点的系统已经提供了平台公共报表查询接口,但是这个接口有的报表可能不支持,或者用起来不是那么顺畅。

    于是,就会想到开发自定义WebAPI接口来查询报表数据,前面讲了,自定义接口实质还是基于插件开发的,那么首先可以参考的思路就是:插件中如何获取报表数据?有下面一些案例可以参考:

以上案例已经可以通过C#实现自定义WebAPI接口来实现查询报表数据,但大部分情况可能都是查询某一个报表的,如果要查询多个报表,那是不是得开发多个接口呢?

那么,就很想实现一个通用的报表查询接口?或者用Python实现?就可以快速的进行迭代修改,以满足对各种报表的需求


结合以上思考, 本次案例基于Python插件,变通实现自定义WebAPI接口查询报表数据!

二、解决方案

  •     如何实现通用方法获取报表数据?

    有了插件获取报表数据的方法案例,插件获取报表数据当然不是问题,经过验证,Python插件也能实现。

    经过分析就发现,报表查询其实是相同的模式,都是:过滤参数->执行报表取数逻辑->返回查询结果(DataTable)

    差异点主要在于过滤参数的不同。

  •     Python插件如何转换成接口调用?

           对于WebAPI接口调用,要实现的目标是:

                 接口能传递自定义参数->Python插件解析干预->返回自定义数据给接口调用方

           由于不能自定义接口服务插件,那么就只能往标准接口上面去靠,而目前标准WebAPI接口能传自定义参数的接口就 只有单据保存接口和单据下推接口。所以Python插件干预接口参数,就要基于这2种操作触发来实现。

           而要实现自定义的返回数据,很简单,可以通过抛异常的方式返回出来,然后接口调用方解析异常信息。以上两种操作都是可以支持的。但是,下推接口,要建立在单据转换的基础上,显然不是太方便,所以最佳的选择就是保存接口了。

           对于保存接口,还有一种方式可以返回数据给接口,那就是增加操作结果信息

          √ 用操作服务插件刚好可以满足以上条件:Python能实现+保存接口能触发+增加操作结果信息

  •    具体实现思路?

    ①开发

#实践案例#Python插件变通实现自定义WebAPI接口查询报表

一、业务背景 小伙伴们实践了Python插件开发后,觉得很方便,很多小伙伴就问我,Python能不能做自定义WebAPI接口? 大家知道,Pyth...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信