您现在的位置是:首页 > 文章详情

腾讯 APIJSON 插件 apijson-query-spring-boot-starter 开源

日期:2023-09-12点击:106

腾讯 APIJSON 是一种专为 API 而生的 JSON 网络传输协议 以及 基于这套协议实现的 ORM 库。
为各种增删改查提供了完全自动化的万能 API,零代码实时满足千变万化的各种新增和变更需求。
能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。适合中小型前后端分离的项目。

自 2016 年开源 6 年多来发展迅速,目前 15.8K Star 位居 400W Java 开源项目前 100。

国内 腾讯、华为、阿里巴巴、美团、字节跳动、百度、京东、网易、快手、圆通 等 和
国外 Google, Microsoft, Amazon, Paypal, IBM, Shopee 等数百名知名大厂员工点了 Star,
也有 腾讯、华为、字节跳动、Microsoft、Zoom、知乎 等 工程师 / 专家 / 架构师 提了 PR/Issue,
还被 腾讯、华为、百度、SHEIN、快手、中兴、传音、圆通、美图 等各大知名厂商用于各类项目。

 

apijson-query-spring-boot-starter

插件介绍

一个快速构建apijson查询条件的插件

通常我们在数仓或者其他场景中会使用apijson提供通用接口,这时候会有其他应用需要调用apijson接口,虽然apijson提供通用的json格式参数调用, 但是由于apijson单独实现一套语法规则,需要学习成本,此插件的目的就是像使用mybatis plus构建sql查询参数一样,去构建apijson查询条件,无需任何apijson语法学习,即可完成通用查询请求。

查询构建使用示例

  • 基于ApiJsonQueryLambdaWrapper构建查询
 public class Test {  public void testQuery() {  ApiJsonQueryLambdaWrapper queryWrapper = ApiJsonQueryWrappers.lambdaQuery()  .setSchema("模式名")  .setTableName("表名")  .setBiSigns("业务标识")  .select("查询列")  .eq("条件判断", "条件列", "条件值")  // ...  ;  } }
 
  • 基于ApiJsonQueryStringWrapper构建查询
 public class Test {  public void testQuery() {  ApiJsonQueryStringWrapper queryWrapper = ApiJsonQueryWrappers.query()  .setSchema("模式名")  .setTableName("表名")  .setBiSigns("业务标识")  .select("查询列")  .eq("条件判断", "条件列", "条件值")  //...  ;  } }
 
  • 基于ApiJsonQueryMapWrapper构建查询
 public class Test {  public void testQuery() {  Map<String, Object> param = new HashMap<>();  //apijson原生语法  param.put("键", "值");  //...  ApiJsonQueryMapWrapper queryWrapper = ApiJsonQueryWrappers.mapQuery()  .setQueryParam(param);  } }
 

方法调用使用示例

提供ApiJsonQueryTemplate模板方法

  • 查询一条数据 getOne(查询条件,转换类型)
 public class Test {  @Autowired  private ApiJsonQueryTemplate apiJsonQueryTemplate;  public void testGetOne() {  User user = apiJsonQueryTemplate.getOne(queryWrapper, User.class);  } }
 
  • 查询条数 count(查询条件)
 public class Test {  @Autowired  private ApiJsonQueryTemplate apiJsonQueryTemplate;  public void testCount() {  Long count = apiJsonQueryTemplate.count(queryWrapper);  } }
 
  • 查询列表 getList(查询条件,转换类型)
 public class Test {  @Autowired  private ApiJsonQueryTemplate apiJsonQueryTemplate;  public void testGetList() {  List<User> userList = apiJsonQueryTemplate.getList(queryWrapper, User.class);  } }
 
  • 查询分页列表 getPageList(查询条件,当前页,页大小,转换类型)
 public class Test {  @Autowired  private ApiJsonQueryTemplate apiJsonQueryTemplate;  public void testGetPageList() {  ApiJsonPageInfo<User> userPageList = apiJsonQueryTemplate.getPageList(queryWrapper, 1, 10, User.class);  } }
 

扩展查询数据源示例

提供默认基于http形式的apijson数据源查询方法,如果不满足需求,可继承DwQueryDao接口,实现getData方法,然后再装配Bean

 public class AutoConfiguration {  @Resource  private ApiJsonQueryProperties apiJsonQueryProperties;  @Bean  public ApiJsonQueryTemplate apiJsonQueryTemplate() {  log.debug("加载自定义查询数据源实现....");  ApiJsonQueryTemplate apiJsonQueryTemplate = new ApiJsonQueryTemplate();  //自定义查询数据源  ApiJsonQueryDao customQuery = new CustomQueryImpl(apiJsonQueryProperties);  apiJsonQueryTemplate.setDao(customQuery);  return apiJsonQueryTemplate;  } }
 

注解说明

  • ApiJsonTableName 表名注解
 @ApiJsonTableName(  value = "表名",  schema = "模式名",  biSigns = "业务标识",  desc = "描述" ) public class TestDO{   } //注解设置完成后,只需要在构建查询条件时 setTableName(TestDO.class)即可
 
  • ApiJsonTableField 字段名注解
 @ApiJsonTableName(  value = "表名",  schema = "模式名",  biSigns = "业务标识",  desc = "描述" ) public class TestDO {  //将name映射为name2查询  @ApiJsonTableField(value = "name2")  private String name;  //忽略该字段查询  @ApiJsonTableField(exist = false)  private String value; } //注解设置完成后,只需要在构建查询条件时 setTableName(TestDO.class)即可
 

使用说明

在maven中加入以下依赖:

 <dependency>  <groupId>io.gitee.mingbaobaba</groupId>  <artifactId>apijson-query-spring-boot-starter</artifactId>  <version>版本</version> </dependency>

 

创作不易,打开以下链接右上角点亮 ⭐️ 来支持/收藏下吧~

https://gitee.com/mingbaobaba/apijson-query-spring-boot-starter

原文链接:https://www.oschina.net/news/257744
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章