扩展插件,一招让你的操作API更灵活!

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

扩展插件,一招让你的操作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. 可以注册并启用多个对应接口业务操作的插件进行自定义处理,插件按顺序执行。



#往期推荐#


苍穹OpenAPI数据脱敏,保障企业隐私安全

助力集成开发,一文解锁API文档功能

苍穹跨库查询超能力,超级查询来了

全新云打印客户端,用了都说好!


更多精彩内容,“码”上了解!↓

上传图片


扩展插件,一招让你的操作API更灵活!

嘿,你是否曾在使用OpenAPI时遇到以下情况?1. 需要对查询、提交、审核等操作的API请求参数进行特定业务场景的过滤。2. 希望在接口保存过...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息