大家好,我是一航!
"偷懒"可以说是技术创新的重要动力之一,很多技术,框架的革新,本质上就是为了能更好的"偷懒",今天又来分享一款偷懒神器:Rocket-API;
什么是Rocket-API?
"Rocket-API" 基于 SpringBoot 的 API 敏捷开发框架,服务端50%以上的功能只需要写SQL或者 mongodb原始执行脚本就能完成开发,另外30%也在不停的完善公共组件,比如文件上传,下载,导出,预览,分页等等通过一二行代码也能完成开发,剩下的20%也能依赖于动态编译技术生成class的形式,不需要发布部署,不需要重启来实现研发团队的快速编码,提测以及回归。实现了服务端研发效率300%-500%的提升,人力成本减少了3倍
拒绝CRUD。用尽可能简单的方式,完成尽可能多的需求。通过约定的方式实现统一的标准。告别加班,拒绝重复劳动,远离搬砖。
如下:
如下:
使用一些工具比如 mybatis plus,jpa 或者 idea 的 Easy code、MybatisCodeHelperPro 等可以一键生成一些基于单表的操作的相关代码。
但是业务场景来说,可能喜欢更灵活,代码执行效率更高的一些操作方式,并且一个项目开发中,从来不仅仅是单表的一些操作操作。
市面上就上面的这些问题,提供了 APIJSON 和 GraphQL 等解决方案,这两个工具相对操作数据库相对很灵活,但是操作难度,和学习成本高,并且适合场景也是有限,如果要实现简单的业务处理逻辑会比较复杂。
那么,我希望有一种功具,它可以像 mybatis xml,像 metabase BI,一样,能够直接操作原生的数据库查询及操作语句。
并且可以有 springboot 的 restful 这种业界标准的接口定义/及参数定义方式,并且按照统一约定的方式,省略三层 MVC 的定义,并且能够对数据进行一些逻辑处理,以满足多元化的业务需求。
最好是作为一个插件的形式,能够很好的集成在现有项目中,不会影响到现有的业务逻辑处理。
这就是我要介绍的一款工具 Rocket API:
开源地址:https://gitee.com/alenfive/rocket-api
Demo地址:https://gitee.com/alenfive/rocket-api-demo
区别于前两类的设计方式不同点在于:
“Rocket API” 提供了 POSTMAN 的操作页面,能够将参数的请求值,请求类型,响应等保存起来,给予前端做真实数据的对接,而不是类 yapi,或者 swagger 之类生成的不能使用的假数据。
基于这些真实的请求参数和返回值,提供了外部接口能力,测试团队可以以此来做接口的一键冒烟测试和文档的一键生成。
接口功能自测页面:
文档和演示地址:
文档地址:https://www.yuque.com/alenfive/rocket-api
在线演示:http://39.98.181.90:8081/interface-ui?id=5f433b40f8b91c43f8835d3c&page=editor
添加依赖:
<dependency>
<groupId>com.github.alenfive</groupId>
<artifactId>rocket-api-boot-starter</artifactId>
<version>2.4.4.RELEASE</version>
</dependency>
数据源配置:
@Component
public class DefaultDataSourceManager extends DataSourceManager {
@Autowired
private JdbcTemplate jdbcTemplate;
@PostConstruct
public void init() {
Map<String,DataSourceDialect> dialects = new HashMap<>();
dialects.put("mysql",new SqlDataSource(jdbcTemplate,true));
super.setDialectMap(dialects);
}
}
最新建表脚本查看:
https://www.yuque.com/alenfive/rocket-api/dhfv0n
启动项目,访问地址:
http://localhost:8080/interface-ui
END