共计 2366 个字符,预计需要花费 6 分钟才能阅读完成。
本文案例收录在 https://github.com/chengxy-nd…
大家好,我是小富~
明天介绍我正在用的一款高效麻利开发工具magic-api
,顺便分享一点工作中应用它的心得
缘起
先说一下我为什么会应用这个工具?
最近新启动一个我的项目,业务并不算简单,那种典型的管理系统,产品要求反对全局页面配置化,前端所有相干配置必须通过接口返回,比方:像查问下拉框(启用、禁用)这类简略的条件,国际化,必须做到全动静配置。
其实只有人手够工夫够,这些都没问题,但问题就在于立项到上线周期就给十几天,而开发工夫满打满算不到 10 来天,工夫紧又不给加人,底层程序员的生存真是太难了。
不过方法总比艰难多,前共事老哥给我举荐了这个工具,而后就真香了,哈哈~
magic-api
是一个基于 Java 的接口疾速开发框架,编写接口将通过 magic-api
提供的 UI
界面实现,主动映射为 HTTP 接口,无需定义 Controller
、Service
、Dao
、Mapper
、XML
、VO
等 Java 对象即可实现常见的 HTTP API 接口开发。
上边是官网对工具的介绍,但如同还是没明确它是干什么的,接下来咱们演示一下,你就会感觉它很 哇塞 了
环境
首先 pom.xml
引入magic-api
外围包magic-api-spring-boot-starter
<dependency>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-spring-boot-starter</artifactId>
<version>0.7.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
application.yml
配置更简略,数据库(没数据库操作能够不写)和 magic-api
的根底信息
magic-api:
web: /magic/web # UI 申请的界面以及 UI 服务地址
server:
port: 9999
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
password: xinzhifu521
url: jdbc:mysql://47.93.6.5:3306/magic-api
username: root
好了~ 到这环境就搭建实现!
在具体演示之前先吐槽一下用 Java 开发 API 的毛病,首当其冲的就是啰嗦,尤其是在工期紧,性能需疾速迭代的时候,既要严格执行开发标准,又不能耽搁工期,即使最简略的一个 API 接口,也要写对应的 Controller
、Service
、Dao
、Mapper
、DTO
、VO
等类,只管这些根底编码有对应的代码生成器,但保护起来还是相当麻烦,magic-api
起到一个很好的辅助作用,少写了很多代码。
实际
间接拜访 http://127.0.0.1:9999/magic/web
关上 magic-api
可视化界面,看到如下的界面。
创立一个分组,其中 分组前缀
为一组 API 接口的拜访根目录,相当于 @Controller("/order")
注解。
接着在分组中创立接口 order_detail
,页面配置接口的根底信息,接口名称、申请门路、申请办法、申请参数、申请 header 等,接口间接 return
返回内容
return‘小富最帅’
在页面拜访刚刚创立接口的全门路 http://127.0.0.1:9999/order/order_detail
,发现曾经胜利返回数据。
也能够间接拼 JSON
格局数据间接返回
如果 URL 传参 /order_detail/{id}
,导入 request
模块获取参数
import request;
a = path.id
到这一个简略的 API 接口就开发完了,而此时咱们还未在我的项目中写一行代码
但上边只是静态数据,在理论开发中往往要与数据库打交道,magic-api
提供了一些相似于 python
开发中的模块化组件,例如引入 import db
模块,间接执行SQL
语句会返回 JSON
格局数据,省略了很多两头步骤。magic-api
语法与 Java
的差别不大,不过更加精简了一些,只有写过 Java 对它学习老本并不高,比方罕用得 for
循环,也会有一般和 lambda
多种写法。
var sum = 0;
var list = [1,2,3,4,5];
for(val in list){sum = sum + val;}
list.each(it => sum+= it + 1)
这里我只简略的介绍了应用,还有很多高级个性,比方:调用 Java API
、集成redis
、Mongo
等,感兴趣的同学本人看下官网文档吧,它还提供了很多语法demo
,拿来即用就好。
地址:http://140.143.210.90:9999/magic/web/index.html
心得
magic-api
在我整个我的项目赶工期的过程中堪称是居功至伟,节俭了一大半的开发工夫,不仅后端开发接口效率显著晋升,对前端联调帮忙也很大。
前后端从开始就定义好数据结构,后端疾速提供静态数据接口,前端用实在接口联调,后端补充完业务逻辑后无缝替换成实在数据,这样做到同步开发,前端也不必只写伪代码等接口联调了。
magic-api
尽管能够进步开发效率,然而理论利用中我也只敢把它用在一些逻辑绝对简略,偏配置类接口,再有就是为前端疾速提供动态接口,外围业务还是要按“规矩”办事,毕竟零碎稳固、平安才是最重要的。
整顿了几百本各类技术电子书,有须要的同学公号 [ 程序员内点事 ] 内回复 [666 ] 自取。技术群快满了,想进的同学能够加我好友,和大佬们一起吹吹技术。