Redian新闻
>
万万没想到,Java开发 API 接口可以不用写 Controller了!

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

公众号新闻

👉 这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入芋道快速开发平台知识星球。下面是星球提供的部分资料: 

👉这是一个或许对你有用的开源项目

国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。

功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号等等功能:

  • Boot 地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • Cloud 地址:https://gitee.com/zhijiantianya/yudao-cloud
  • 视频教程:https://doc.iocoder.cn

来源:程序员小富


今天介绍我正在用的一款高效敏捷开发工具magic-api,顺便分享一点工作中使用它的心得

缘起

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

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

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

不过办法总比困难多,前同事老哥给我推荐了这个工具,然后就真香了,哈哈~

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

上边是官方对工具的介绍,但好像还是没明白它是干什么的,接下来咱们演示一下,你就会觉得它很哇塞

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

环境

首先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-namecom.mysql.jdbc.Driver
    passwordxinzhifu521
    urljdbc:mysql://47.93.6.5:3306/magic-api
    usernameroot
    

好了~ 到这环境就搭建完成!


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

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud
  • 视频教程:https://doc.iocoder.cn/video/

实践

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


欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,长按”或“扫描”下方二维码噢

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
南方哈佛...之首?卫公理会的蓝魔,万万没想到你是这样的前十!万万没想到,玉米还能这么吃!美味好消化2024QS最佳留学城市发布!万万没想到,美国最棒的城市原来是....香港DSE出分!状元进了剑桥!万万没想到清北复交分数线这么高……万万没想到,李玟今天的葬礼状况百出!美国万万没想到,中国干了一件史无前例的外交大事!反复鼻出血难以控制,原因万万没想到!nǚ hóng?nǚ gōng“人类避暑行为图鉴...”这骚操作万万没想到!美国万万没想到,中国这次动作这么快,真不敢相信!今夜悉尼似银河,流光溢彩冠全球万万没想到,呼市能成为顶流!老太日常让狗狗去门口赶猫,万万没想到,这天外面来了头熊School Gym Collapse Kills 11, Girl Volleyball Players Among Dead假期卖房数据出炉!万万没想到,卖得最好的城市是......美国网红想搞一场线下送礼活动,万万没想到,变成一场千人骚乱!万万没想到,小美人鱼在法国票房夺冠!五十三 昭忠祠我万万没想到!这零食能哄娃、能补钙,居然还这么健康克里米亚神反转!普京万万没想到,美国下手太狠,但拜登彻底慌了...万万没想到! 最爱的果汁全上了不健康饮料黑榜又一女神人设崩塌?万万没想到是韩雪,她也有人设崩塌的一天?75岁国家一级演员被封杀,万万没想到,他竟是这样一个人!SpringBoot 接口快速开发神器(接口可视化界面实现)醉了!澳女子剃光头称自己得了绝症,好心社区捐款18000刀给她!结果万万没想到…缄嘿杂感团|万万没想到它能开团!超多明星都在穿!万万没想到,大补全身、远离大病的秘诀竟不花一分钱!《报任安书》和《答苏武书》并读万万没想到,11岁斯嘉丽,已经用 AI 赚钱了。。。她卖鸡蛋当漂流瓶,万万没想到,72年后终于有了回音:稍晚几年,问题不大!万万没想到!基辛格访华真正原因,对决将拉开新的战幕……万万没想到,现在一只猫也能出书了!Xbox Series X 1TB Console with controller 万万没想到,这轮暴雨这么厉害美国万万没想到,中国态度这么强硬,竟和美方正面硬刚!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。