作者:棒锤

来源:xie.infoq.cn/article/b5c3a339267e1351c6151b42a_

初衷

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

特性

  1. 用于快速开发API接口。不再定义Controller,Service,Dao,Mybatis,xml,Entity,VO等对象和方法.

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

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

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

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

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

  7. 远程一键发布到线上环境

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

  9. 代码提示,SQL提示,语法提示

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

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

传统开发步骤:

  1. 增加一张表

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

  3. 创建API入参VO

  4. 创建API出参VO

  5. 创建Controller

  6. 创建Service

  7. 创建Dao

  8. 创建Mapper, xml或者JPA

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

  10. 反复重启,进行接口自测

  11. 编写API文档

  12. 完成一个功能点开发

使用一些工具比如mybatis plus,jpa,或者idea的Easy code,MybatisCodeHelperPro等可以一键生成一些基于单表的操作的相关代码,但是业务场景来说,可能喜欢更灵活,代码执行效率更高的一些操作方式,并且一个项目开发中,从来不仅仅是单表的一些操作操作

市面上就上面的这些问题,提供了APIJSON和GraphQL等解决方案,这两个工具相对操作数据库相对很灵活,但是操作难度,和学习成本高,并且适合场景也是有限,如果要实现简单的业务处理逻辑会比较复杂

那么,我希望有一种功具,它可以像mybatis xml,像metabase BI,一样,能够直接操作原生的数据库查询及操作语句,并且可以有springboot的restful这种业界标准的接口定义/及参数定义方式,并且按照统一约定的方式,省略三层MVC的定义,并且能够对数据进行一些逻辑处理,以满足多元化的业务需求。最好是作为一个插件的形式,能够很好的集成在现有项目中,不会影响到现有的业务逻辑处理

这就是我要介绍的一款工具 Rocket API

https://gitee.com/alenfive/rocket-api-doc/wikis/pages

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

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

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

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

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

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

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

  7. 传统业务开发,不仅有服务端的开发,还有相对应的文档生成,前后端对接,以及测试配合。“Rocket API” 提供了POSTMAN的操作页面,能够将参数的请求值,请求类型,响应等保存起来,给予前端做真实数据的对接,而不是类yapi,或者swagger之类生成的不能使用的假数据。基于这些真实的请求参数和返回值,提供了外部接口能力,测试团队可以以此来做接口的一键冒烟测试,和文档的一键生成

演示说明

接口功能逻辑页面

接口功能自测页面

文档和演示地址:

https://gitee.com/alenfive/rocket-api-doc/wikis/pages

集成方式:

1. 添加依赖

`<dependency>  <groupId>com.github.alenfive</groupId>  <artifactId>rocket-api-boot-starter</artifactId>  <version>0.0.1-SNAPSHOT</version>
</dependency>
`

2. 数据源配置

`@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);  }
}
`

3. 最新建表脚本查看:

https://gitee.com/mihuajun/rocket-api-doc/wikis/pages?sort_id=2670007&doc_id=859283

启动项目,访问地址:

http://localhost:8080/interface-ui

(完)

特别推荐一个分享架构+算法的优质内容,还没关注的小伙伴,可以长按关注一下:

长按订阅更多精彩▼如有收获,点个在看,诚挚感谢

介绍一款 API 敏捷开发工具,告别加班!相关推荐

  1. 介绍一款 API 敏捷开发工具

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:棒锤 xie.infoq.cn/article/b5 ...

  2. 又发现一款牛逼的 API 敏捷开发工具

    来源:xie.infoq.cn/article/b5c3a339267e1351c6151b42a   初衷 跟大家分享一个牛逼的 API 敏捷开发工具,用尽可能简单的方式,完成尽可能多的需求.通过约 ...

  3. 推荐几款热门的敏捷开发工具

    不知道有多少企业在很好的应用敏捷模式: 在今天的文章中,我们将一同了解更多有趣.高效且面向敏捷的项目管理工具. Atlassian Jira/ Jira Agile Atlassian的Jira是一款 ...

  4. 敏捷开发工具Pivotal Tracker实施小结

    Pivotal Tracker是一款敏捷开发和项目管理的软件.最近在使用了一段时间后,认为这个工具还是不错的,所以在这里总结一下自己的体会. 敏捷开发介绍 简单介绍一下什么是敏捷开发(Agile De ...

  5. Scrum敏捷开发工具分享

    Scrum是目前运用最为广泛的敏捷开发方法,是一个轻量级的项目管理和产品研发管理框架. 经过多年的发展,敏捷开发受到很多团队及企业的欢迎,随着热度越来越高,随之也诞生了众多敏捷开发工具,帮助企业可以更 ...

  6. 团队实践,我们是怎么用敏捷开发工具Leangoo的

    随着Scrum敏捷开发被越来越多的公司所熟知,很多公司的研发团队也逐渐向敏捷开发方向转型.几天前,我们公司引进了一个敏捷开发工具 Leangoo,来帮助我们更好的敏捷. 今天我简单介绍一下我们团队是怎 ...

  7. Scrum敏捷开发工具Leangoo

    为什么选择 Leangoo? 很简单,因为它够简洁,够轻量,上手够快! 因为我们的工作中有各种事物要处理,我们需要这样的敏捷开发工具来帮助我们解决问题并清晰的展开工作.Leangoo可以帮助我们管理事 ...

  8. 《安富莱嵌入式周报》第287期:下一代Windows12界面,支持各种工业以太网协议参考,百款在线电子开发工具,seL4安全微内核,旋转拨号手机,PSP掌机逆向

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  9. 几款常用PHP开发工具

    几款常用PHP开发工具 最近想好好研究一下PHP开发,所以搜罗了一下.找了这么几款开发工具和大家共享. 1.EditPlus 一套功能强大,可取代记事本的文字编辑器,拥有无限制的Undo/Redo.英 ...

最新文章

  1. 基于感知损失的实时风格迁移与超分辨率重建
  2. git公有转私有_【IT新手之路】客户端组件化之私有库搭建
  3. html中的js作用,javascript中的innerHTML属性有什么作用
  4. linux下升级python2.0到python3.0
  5. 三级菜单 python_python三级菜单
  6. JavaSE——IO(下)(Properties类、序列化与反序列化)
  7. java lobo使用_[持续更新]Cobra:Java HTML parser用法详解
  8. CSS彻底研究(1)
  9. 用perl发送数据到钓鱼站
  10. Android API之android.view.View.MeasureSpec
  11. C语言学习方法(详细,适合初学者学习食用)
  12. 第一章 Python数据模型
  13. 初遇项目网络平台架构设计方案
  14. Doris0.13.15升级至0.14.12.4故障[Bug] NPE when replaying CheckConsistencyJob
  15. Springboot毕业设计管理系统
  16. 读书笔记_002 甘于平凡而不甘于平凡的腐烂——《平凡的世界》所感
  17. Xmanager安装与使用攻略
  18. 神经痛分类图片大全,神经病理性疼痛分类
  19. 校园版网络教学平台搭建方案(学生端)
  20. sql server 数据库正在使用该文件的解决办法

热门文章

  1. 用 Linux 命令玩一个有趣的数学游戏
  2. oracle连接查询详解
  3. JavaScript初学者编程题(14)
  4. 使用C++的Socket实现从客户端到服务端,服务端到客户端传输文件
  5. 关于学习Python的一点学习总结(31->继承及多态)
  6. html 视频兼容苹果,video苹果兼容flash播放
  7. 【学习笔记】超简单的多项式快速幂
  8. 关于reference to ‘XXXX’ is ambiguous的解决办法
  9. input框选中时如何不出灰框_如何建立学习目标:这个SMART原则,你要了解,家长看懂教给孩子...
  10. Linux下如何同时注释多行/同时取消多行注释