关于java:没想到吧Java开发-API接口可以不用写-Controller了

42次阅读

共计 2366 个字符,预计需要花费 6 分钟才能阅读完成。

本文案例收录在 https://github.com/chengxy-nd…

大家好,我是小富~

明天介绍我正在用的一款高效麻利开发工具magic-api,顺便分享一点工作中应用它的心得

缘起

先说一下我为什么会应用这个工具?

最近新启动一个我的项目,业务并不算简单,那种典型的管理系统,产品要求反对全局页面配置化,前端所有相干配置必须通过接口返回,比方:像查问下拉框(启用、禁用)这类简略的条件,国际化,必须做到全动静配置。

其实只有人手够工夫够,这些都没问题,但问题就在于立项到上线周期就给十几天,而开发工夫满打满算不到 10 来天,工夫紧又不给加人,底层程序员的生存真是太难了。

不过方法总比艰难多,前共事老哥给我举荐了这个工具,而后就真香了,哈哈~

magic-api 是一个基于 Java 的接口疾速开发框架,编写接口将通过 magic-api 提供的 UI 界面实现,主动映射为 HTTP 接口,无需定义 ControllerServiceDaoMapperXMLVO 等 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 接口,也要写对应的 ControllerServiceDaoMapperDTOVO等类,只管这些根底编码有对应的代码生成器,但保护起来还是相当麻烦,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、集成redisMongo 等,感兴趣的同学本人看下官网文档吧,它还提供了很多语法demo,拿来即用就好。

地址:http://140.143.210.90:9999/magic/web/index.html

心得

magic-api在我整个我的项目赶工期的过程中堪称是居功至伟,节俭了一大半的开发工夫,不仅后端开发接口效率显著晋升,对前端联调帮忙也很大。

前后端从开始就定义好数据结构,后端疾速提供静态数据接口,前端用实在接口联调,后端补充完业务逻辑后无缝替换成实在数据,这样做到同步开发,前端也不必只写伪代码等接口联调了。

magic-api尽管能够进步开发效率,然而理论利用中我也只敢把它用在一些逻辑绝对简略,偏配置类接口,再有就是为前端疾速提供动态接口,外围业务还是要按“规矩”办事,毕竟零碎稳固、平安才是最重要的。

整顿了几百本各类技术电子书,有须要的同学公号 [ 程序员内点事 ] 内回复 [666 ] 自取。技术群快满了,想进的同学能够加我好友,和大佬们一起吹吹技术。

正文完
 0