大家好,我是小富~

今天介绍我正在用的一款高效敏捷开发工具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.Driverpassword: xinzhifu521url: jdbc:mysql://47.93.6.5:3306/magic-apiusername: 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虽然可以提高开发效率,但是实际应用中我也只敢把它用在一些逻辑相对简单,偏配置类接口,核心业务还是要按“规矩”办事,毕竟系统稳定、安全才是最重要的。

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

  1. java系统智能手表_java_智能手表开发API接口,随着移动技术的发展,许多传 - phpStudy...

    智能手表开发API接口 随着移动技术的发展,许多传统的电子产品也开始增加移动方面的功能,比如过去只能用来看时间的手表,现今也可以通过智能手机或家庭网络与互联网相连,显示来电信息.邮件.照片.新闻.天气 ...

  2. web api接口开发实例_C# 物联网开发API接口系列(4)

    C# 物联网开发API接口系列(四) #久爱物联网#MQTT# [提纲] 1)获取设备列表(某用户的) 2)单独检查设备是否存在合法 [正文] /// /// 获取设备列表 /// /// 令牌 // ...

  3. wordpress 外部数据接口_在WordPress中开发API接口

    相信很多朋友都有在wordpress中开发API接口的需求 其实wordpress中进行API开发也不是有多大的难度.不过我走了很多弯路,所以在这里写下方法,以免更多人再走这条弯路. 在刚接到开发wo ...

  4. 技术小白如何快速开发API接口?

    API接口是什么? API全称是:Application Programming Interface,即:应用程序接口,是一些预先定义的函数,或指软件系统不同组成部分衔接的约定.开发人员可以使用这些A ...

  5. php接口开发 安全_PHP开发api接口安全验证的实例讲解

    php的api接口 在实际工作中,使用PHP写api接口是经常做的,PHP写好接口后,前台就可以通过链接获取接口提供的数据,而返回的数据一般分为两种情况,xml和json,在这个过程中,服务器并不知道 ...

  6. php api查询开发,PHP开发API接口(注册、登录、查询用户信息)的实例代码

    本节主要内容: php开发API接口的实现代码 一.PHP API接口的服务端部分 复制代码 代码示例: /** * PHP开发API接口 服务端 * edit: www.jbxue.com */ r ...

  7. 智表ZCELL产品V1.4.0开发API接口文档 与 产品功能清单

    为了方便大家使用ZCELL,应网友要求,整理编写了相关文档,现与产品一起同步发布,供大家下载使用,使用过程中如有疑问,请与我QQ联系. 智表(ZCELL)V1.4.0版本  功能清单文档下载地址: 功 ...

  8. php api查询开发,PHP 开发API接口 登记,登录,查询用户资料

    PHP 开发API接口 注册,登录,查询用户资料 服务端 0) { exit(json_encode(1)); //返回1表示注册失败 } else { $addsql = "insert ...

  9. 个人微信号二次开发sdk协议,微信个人号开发API接口

    个人微信号二次开发sdk协议,微信个人号开发API接口 微信SDK程序概要说明 个人微信号开发sdk非微信ipad协议.非mac协议,非安卓协议,api可实现微信99%功能: 无需扫码登录.可收发朋友 ...

最新文章

  1. 利用C#语言实现小闹钟
  2. C 语言 静态库和动态库的创建和应用
  3. Python 中使用help()命令后如何退出
  4. shell获取/etc/passwd中的用户名和id
  5. html标签的显示模式(块级标签,行内标签,行内块标签)
  6. 通过shell进行数学计算
  7. 读书笔记-1-《书都不会读,你还想成功?》
  8. Web网页设计作业html
  9. python日历程序编写_Python创建日历实例
  10. 任性与自制力差--拖延症(行为训练)
  11. poi导出使用HSSFWorkbook行数超出
  12. AWS EFS vs EBS vs S3(差异和何时使用?)
  13. Spring AOP报错Set ‘exposeProxy‘ property on Advised to ‘true‘ to make it available问题
  14. SSH远程访问以及控制
  15. 佳能2420报错代码E000007-0000
  16. 关于010editor
  17. 华为ensp NAT技术地址转换
  18. 【三维目标检测】Complex-Yolov4详解(二):模型结构
  19. c#实现SharedMatting抠图算法
  20. pip安装pytorch--cuda

热门文章

  1. Linux学习中我的10条建议和技巧
  2. mysql 查询优化 非索引_mysql 查询优化和索引使用心得
  3. HDU3718(最大权完美匹配)
  4. 南华大学c语言多少分才能过_成人高考难吗?多少分可以过?
  5. 算法_贪心 刷题总结
  6. 基于三层BP神经网络的人脸识别
  7. 哈工大威海c语言实验报告 第八章 无法运行程序,哈工大(威海)c语言实验报告册答案...
  8. 通过mtd读写flash_关于如何在kernel起来之后通过直接dd读写nand flash分区来更新zImage的mtd问题...
  9. watch监听对象里面值的变化_Vue总结——computed和watch的用法和区别
  10. Oracle 11g dataguard三种模式以及实时查询(Real-time query)功能设置