彻底告别 Controller、Service、Dao,让人上瘾的开发神器

前后端微服务商城项目,手把手教学!

"偷懒" 可以说是技术创新的重要动力之一,很多技术,框架的革新,本质上就是为了能更好的 "偷懒",今天又来分享一款偷懒神器:Rocket-API

什么是 Rocket-API?

Rocket-API 基于 SpringBoot 的 API 敏捷开发框架,服务端 50% 以上的功能只需要写 SQL 或者 mongodb 原始执行脚本就能完成开发,另外 30% 也在不停的完善公共组件。

比如文件上传,下载,导出,预览,分页等等通过一二行代码也能完成开发,剩下的 20% 也能依赖于动态编译技术生成 class 的形式,不需要发布部署,不需要重启来实现研发团队的快速编码,提测以及回归。实现了服务端研发效率300%-500%的提升,人力成本减少了 3 倍

定位

拒绝 CRUD。用尽可能简单的方式,完成尽可能多的需求。通过约定的方式实现统一的标准。告别加班,拒绝重复劳动,远离搬砖。

特性

如下:

  • 用于快速开发 API 接口。不再定义 ControllerServiceDaoMybatisxmlEntityVO 等对象和方法。

  • 可视化界面,将入参自动封装到可执行的脚本上,支持所有关系性数据库 SQL 执行语句,非关系型 MONGODB 查询语句,欢迎扩展。

  • 完全基于 springboot2.x 作为 springboot 项目的 stater 方式集成,无侵入性,新老项目都能快速集成。

  • 只需编写一行代码即可完成大部分的业务需求开发,使用难度级别(测试 or 运维)也可参与开发。

  • 在线动态编译,无需重启,即时生效,多数据源操作。

  • 版本控制,历史记录比对,回滚等功能。

  • 远程一键发布到线上环境。

  • 线上 POSTMAN 调试,保存 POSTMAN 信息或三方文档的自动生成,历史调用记录存储,回塑。

  • 代码提示,SQL 提示,语法提示。

  • 用户管理控制,安全性控制,以及历史行为记录。

  • 经过多次项目验证,传统业务型开发,服务端效率能够提升 3-5 倍,前后端联调提升效率 1 倍,测试效率 2 倍提升。

传统开发步骤

如下:

  • 增加一张表

  • 创建实体对象,映射这张表

  • 创建 API 入参 VO

  • 创建 API 出参 VO

  • 创建 Controller

  • 创建 Service

  • 创建 Dao

  • 创建 Mapper,xml 或者 JPA

  • 在 mysql 客户端,或者 mongo 客户端中写执行脚本语句,复制到代码中

  • 反复重启,进行接口自测

  • 编写 API 文档

  • 完成一个功能点开发

使用一些工具比如 mybatis plus,jpa 或者 idea 的 Easy codeMybatisCodeHelperPro 等可以一键生成一些基于单表的操作的相关代码。

但是业务场景来说,可能喜欢更灵活,代码执行效率更高的一些操作方式,并且一个项目开发中,从来不仅仅是单表的一些操作操作。

全新基于SpringCloud+Vue的微商城项目完结啦,欢迎学习!

市面上就上面的这些问题,提供了 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

区别于前两类的设计方式不同点在于:

  • 基于 springboot 开发。包括接口的注册,参数的获取,输入输出的消息转换,都是基于 springboot 的生态环境,能无侵入性集成于 springboot 项目中。如果你有基于 springboot 实现了全局异常处理,返回值统一封装,权限控制等,不用担心,都在你的管控范围内。

  • 参考于 mybatis 的参数定义方式,不同点在于使用默认大于配置的逻辑,实现参数的注入直接来源于请求参数,省略了传统 MVC 实体类,方法,VO 等定义。

  • 默认担供了内部函数,可以很简单的实现 多表 / 多库的增 / 删 / 改 / 查,导出,导入,上传,下载,分页查询等功能。

  • 提供了基于 Groovy 的语法解析,可以实现 Groovy 的一些逻辑处理。

  • 提供了调用 springboot bean 对象的方法及其他任意 java 定义的静态类,方法和对象,这意味着我能够调用公共定义的类,或者之前在项目中定义的 service,dao 和 utils。

  • 因为基于的 groovy 动态语法解析,所以代码修改,或者线上问题的处理能够不用重启服务,也不用升级代码就能够完成功能开发和问题处理,这对开发效率而言会有很大的提升。

  • 传统业务开发,不仅有服务端的开发,还有相对应的文档生成,前后端对接,以及测试配合。

Rocket API 提供了 POSTMAN 的操作页面,能够将参数的请求值,请求类型,响应等保存起来,给予前端做真实数据的对接,而不是类 yapi,或者 swagger 之类生成的不能使用的假数据。

基于这些真实的请求参数和返回值,提供了外部接口能力,测试团队可以以此来做接口的一键冒烟测试和文档的一键生成。

演示说明

接口功能逻辑页面:

8a99ce49c52872c2c23a887c39f61099.png

接口功能自测页面:

d2b61c25e8f41c34c31a3c49db960d84.png

文档和演示地址:

  • 文档地址: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


推荐全新学习项目

全新基于springboot+vue+vant的前后端分离的微商城项目,包括手机端微商城项目和后台管理系统,整个电商购物流程已经能流畅支持,涵盖商品浏览、搜索、商品评论、商品规格选择、加入购物车、立即购买、下单、订单支付、后台发货、退货等。功能强大,主流技术栈,非常值得学习。

项目包含2个版本:

  • 基于springboot的单体版本

  • 基于spring cloud aliabab的微服务版本

线上演示:https://www.markerhub.com/vueshop

db0608e9c611b25f39fb84669d963fc1.jpeg

从文档到视频、接口调试、学习看板等方面,让项目学习更加容易,内容更加沉淀。全套视频教程约44小时共260期,讲解非常详细细腻。下面详细为大家介绍:

架构与业务

使用主流的技术架构,真正手把手教你从0到1如何搭建项目手脚架、项目架构分析、建表逻辑、业务分析、实现等。

单体版本:springboot 2.7、mybatis plus、rabbitmq、elasticsearch、redis

微服务版本:spring cloud alibaba 2021.0.5.0,nacos、seata、openFeign、sentinel

前端:vue 3.2、element plus、vant ui

4b42b1119ec4eb561e7d4f84a7903de9.png

更多详情请查看:

手把手教学,从0开发前后端微商城项目,主流Java技术一网打尽!

手把手教学,从0开发前后端微商城项目,主流Java技术一网打尽!

手把手教学,从0开发前后端微商城项目,主流Java技术一网打尽!

weixin151云匹面粉直供微信小程序+springboot后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值