我也没想到,Java开发 API接口可以不用写 Controller了

沙海 2021年6月2日04:34:58Java评论45字数 2551阅读8分30秒阅读模式
摘要

我也没想到,Java开发 API接口可以不用写 Controller了 小黑格子屋

我也没想到,Java开发 API接口可以不用写 Controller了

小黑格子屋 文章源自JAVA秀-https://www.javaxiu.com/28639.html

以下文章来源于程序员内点事,作者程序员内点事文章源自JAVA秀-https://www.javaxiu.com/28639.html

文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了文章源自JAVA秀-https://www.javaxiu.com/28639.html

程序员内点事文章源自JAVA秀-https://www.javaxiu.com/28639.html

专注于系统架构实战,面试干货分享,Java小白的入门布道,程序员内点事这都有文章源自JAVA秀-https://www.javaxiu.com/28639.html

文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了文章源自JAVA秀-https://www.javaxiu.com/28639.html

来源:程序员内点事文章源自JAVA秀-https://www.javaxiu.com/28639.html

作者:程序员内点事文章源自JAVA秀-https://www.javaxiu.com/28639.html

文章源自JAVA秀-https://www.javaxiu.com/28639.html

今天介绍我正在用的一款高效敏捷开发工具magic-api,顺便分享一点工作中使用它的心得文章源自JAVA秀-https://www.javaxiu.com/28639.html

缘起

先说一下我为什么会使用这个工具?文章源自JAVA秀-https://www.javaxiu.com/28639.html

最近新启动一个项目,业务并不算复杂,那种典型的管理系统,产品要求支持全局页面配置化,前端一切相关配置必须通过接口返回,比如:像查询下拉框(启用、禁用)这类简单的条件,国际化,必须做到全动态配置。文章源自JAVA秀-https://www.javaxiu.com/28639.html

其实只要人手够时间够,这些都没问题,但问题就在于立项到上线周期就给十几天,而开发时间满打满算不到10来天,时间紧又不给加人,底层程序员的生活真是太难了。文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了文章源自JAVA秀-https://www.javaxiu.com/28639.html

不过办法总比困难多,前同事老哥给我推荐了这个工具,然后就真香了,哈哈~文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了文章源自JAVA秀-https://www.javaxiu.com/28639.html

magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义ControllerServiceDaoMapperXMLVO等Java对象即可完成常见的HTTP API接口开发。文章源自JAVA秀-https://www.javaxiu.com/28639.html

上边是官方对工具的介绍,但好像还是没明白它是干什么的,接下来咱们演示一下,你就会觉得它很哇塞文章源自JAVA秀-https://www.javaxiu.com/28639.html

环境

首先pom.xml 引入magic-api核心包magic-api-spring-boot-starter文章源自JAVA秀-https://www.javaxiu.com/28639.html

  <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的基础信息文章源自JAVA秀-https://www.javaxiu.com/28639.html

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秀-https://www.javaxiu.com/28639.html

在具体演示之前先吐槽一下用Java开发API的缺点,首当其冲的就是啰嗦,尤其是在工期紧,功能需快速迭代的时候,既要严格执行开发规范,又不能耽误工期,即便最简单的一个API接口,也要写对应的 ControllerServiceDaoMapperDTOVO等类,尽管这些基础编码有对应的代码生成器,但维护起来还是相当麻烦,magic-api起到一个很好的辅助作用,少写了很多代码。文章源自JAVA秀-https://www.javaxiu.com/28639.html

实践

直接访问http://127.0.0.1:9999/magic/web打开magic-api可视化界面,看到如下的界面。文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了创建一个分组,其中分组前缀为一组API接口的访问根目录,相当于@Controller("/order")注解。我也没想到,Java开发 API接口可以不用写 Controller了接着在分组中创建接口 order_detail,页面配置接口的基础信息,接口名称、请求路径、请求方法、请求参数、请求header等,接口直接return返回内容文章源自JAVA秀-https://www.javaxiu.com/28639.html

return ‘小富最帅’

我也没想到,Java开发 API接口可以不用写 Controller了文章源自JAVA秀-https://www.javaxiu.com/28639.html

在页面访问刚刚创建接口的全路径 http://127.0.0.1:9999/order/order_detail ,发现已经成功返回数据。文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了也可以直接拼JSON格式数据直接返回文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了文章源自JAVA秀-https://www.javaxiu.com/28639.html

如果URL传参 /order_detail/{id},导入request模块获取参数文章源自JAVA秀-https://www.javaxiu.com/28639.html

import request;a = path.id

到这一个简单的API接口就开发完了,而此时我们还未在项目中写一行代码文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了但上边只是静态数据,在实际开发中往往要与数据库打交道,magic-api提供了一些类似于python开发中的模块化组件,例如引入import db 模块,直接执行SQL语句会返回JSON格式数据,省略了很多中间步骤。我也没想到,Java开发 API接口可以不用写 Controller了magic-api语法与Java的差异不大,不过更加精简了一些,只要写过Java对它学习成本并不高,比如常用得for循环,也会有普通和lambda多种写法。文章源自JAVA秀-https://www.javaxiu.com/28639.html

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,拿来即用就好。文章源自JAVA秀-https://www.javaxiu.com/28639.html

地址:http://140.143.210.90:9999/magic/web/index.html文章源自JAVA秀-https://www.javaxiu.com/28639.html

心得

magic-api在我整个项目赶工期的过程中可谓是居功至伟,节省了一大半的开发时间,不仅后端开发接口效率显著提升,对前端联调帮助也很大。文章源自JAVA秀-https://www.javaxiu.com/28639.html

前后端从开始就定义好数据结构,后端快速提供静态数据接口,前端用真实接口联调,后端补充完业务逻辑后无缝替换成真实数据,这样做到同步开发,前端也不用只写伪代码等接口联调了。文章源自JAVA秀-https://www.javaxiu.com/28639.html

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

-End-

文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了文章源自JAVA秀-https://www.javaxiu.com/28639.html

文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了文章源自JAVA秀-https://www.javaxiu.com/28639.html

如何实现丝滑般的数据库扩容文章源自JAVA秀-https://www.javaxiu.com/28639.html

文章源自JAVA秀-https://www.javaxiu.com/28639.html

文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了文章源自JAVA秀-https://www.javaxiu.com/28639.html

图文并茂的聊聊ReentrantReadWriteLock的位运算文章源自JAVA秀-https://www.javaxiu.com/28639.html

文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了文章源自JAVA秀-https://www.javaxiu.com/28639.html

什么是树状数组?让这个12岁年轻人为你讲解文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了 可乐记得加冰,爱我就要置顶 我也没想到,Java开发 API接口可以不用写 Controller了文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了文章源自JAVA秀-https://www.javaxiu.com/28639.html

我也没想到,Java开发 API接口可以不用写 Controller了素质三连biubiubiu~我也没想到,Java开发 API接口可以不用写 Controller了文章源自JAVA秀-https://www.javaxiu.com/28639.html

继续阅读
速蛙云 - 极致体验,强烈推荐!!!购买套餐就免费送各大视频网站会员!快速稳定、独家福利社、流媒体稳定解锁!速度快,全球上网、视频、游戏加速、独立IP均支持!基础套餐性价比很高!这里不多说,我一直正在使用,推荐购买:https://www.javaxiu.com/59919.html
weinxin
资源分享QQ群
本站是JAVA秀团队的技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
沙海
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定