扩展插件,一招让你的操作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 {
/**
扩展插件,一招让你的操作API更灵活!
嘿,你是否曾在使用OpenAPI时遇到以下情况?1. 需要对查询、提交、审核等操作的API请求参数进行特定业务场景的过滤。2. 希望在接口保存过...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



