写点什么

Java 开发中 API 接口不用写 Controller 也可以

  • 2021 年 12 月 08 日
  • 本文字数:1495 字

    阅读完需:约 5 分钟

magic-api 是一个基于 Java 的接口快速开发框架,编写接口将通过 magic-api 提供的 UI 界面完成,自动映射为 HTTP 接口,无需定义 Controller、Service、Dao、Mapper、XML、VO 等 Java 对象即可完成常见的 HTTP API 接口开发。

上边是官方对工具的介绍,但java培训好像还是没明白它是干什么的,接下来咱们演示一下吧:

环境

首先 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: 9999spring:  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,拿来即用就好。

心得

magic-api 在我整个项目赶工期的过程中可谓是居功至伟,节省了一大半的开发时间,不仅后端开发接口效率显著提升,对前端联调帮助也很大。

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

magic-api 虽然可以提高开发效率,但是实际应用中我也只敢把它用在一些逻辑相对简单,偏配置类接口,核心业务还是要按“规矩”办事,毕竟系统稳定、安全才是最重要的。

原创作者:程序员内点事

用户头像

关注尚硅谷,轻松学IT 2021.11.23 加入

还未添加个人简介

评论

发布
暂无评论
Java开发中 API接口不用写 Controller也可以