扩展插件,一招让你的操作API更灵活!
嘿,你是否曾在使用OpenAPI时遇到以下情况?
1. 需要对查询、提交、审核等操作的API请求参数进行特定业务场景的过滤。
2. 希望在接口保存过程中,自动执行入参的预处理,以提高数据的质量和可靠性。
如果你也很有共鸣,那这篇文章最适合你不过了!
本文将介绍如何通过API插件扩展实现业务场景的定制化,以及请求参数的精细过滤。让你的API工作得更智能,更匹配你的业务需求。
准备好了吗?让我们开始吧!
适用版本
苍穹V5.0.018及以上
功能速览
进行系统集成时,通过OpenAPI零代码配置的操作API,若过滤条件不满足实际业务需求,可通过编写插件自定义过滤条件。以查询操作API为例:
图 1 查询操作API配置
步骤一:编写插件代码
不同操作插件类需要实现不同的接口,如下表:
表 1 插件可实现接口
在插件中实现查询的接口,并重写getFilter方法,其中方法参数filter为原接口的过滤条件, reqData为原接口的请求入参。处理逻辑是返回一个新的过滤条件,即覆盖原过滤条件。
import kd.bos.openapi.api.plugin.ApiQueryPlugin; public class DemoApiQueryPlugin implements ApiQueryPlugin { @Override public QFilter getFilter(QFilter filter, Map<String, Object> reqData) { return new QFilter("billstatus", QCP.equals, "B") .and(new QFilter("creator.name", QCP.equals, "fjp")); } }
步骤二:注册并启用插件
在配置页面找到扩展插件注册并启用插件。
图 2 注册并启用插件
步骤三:测试API
点击“API测试”按钮,可以看到,由于插件逻辑是覆盖原过滤条件,返回参数会根据新的过滤条件进行查询。
图 3 测试接口
对于保存操作API,因为保存并无过滤条件,所以重写的方法中,只有一个原入参,可对这个入参进行预处理,具体方法如下。注意方法返回的值,数据结构必需与原入参的保持一致。
public interface ApiSavePlugin extends ApiPlugin { /** * 请求参数处理 * @param reqData 原请求参数 * @return 处理后参数 */ default List<Map<String, Object>> preHandleRequestData(List<Map<String, Object>> reqData) { return reqData; } }
亮点价值
亮点一:精准满足业务需求
通过OpenAPI插件扩展,使您能够根据具体的业务场景定制化API的请求参数,轻松地满足特定的业务需求,而不需要对整个API进行修改。这种灵活性有助于API适应不断变化的业务环境,提供更具竞争力的解决方案。
亮点二:数据处理的高效性和可靠性
通过精细过滤API请求参数,以及在接口保存过程中进行入参的预处理,可以提高数据的质量和可靠性,避免数据的错误及不一致。同时还能提高用户体验,降低错误处理的成本。
划重点
1. 本文所属插件仅在OpenAPI中零代码配置的操作API中使用。
2. 编写插件时,对于API不同操作类型,插件中需要实现对应的接口。
3. 保存操作API对入参进行处理修改时,不能改变原请求参数的结构,即处理后参数需与原请求参数数据结构上保持一致。
4. 可以注册并启用多个对应接口业务操作的插件进行自定义处理,插件按顺序执行。
#往期推荐#
更多精彩内容,“码”上了解!↓
扩展插件,一招让你的操作API更灵活!
本文2024-09-23 00:54:21发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-142502.html