【实用工具】magic-api接口快速开发框架
magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api 提供的UI 界面完成,自动映射为HTTP 接口。 无需定义Controller 、Service 、Dao 、Mapper 、XML 、VO 等Java对象即可完成常见的HTTP API 接口开发。
自学能力较强的朋友传送门:https://www.ssssssss.org/magic-api/
友情提示:如果不是急需使用的,请从第二节开始阅读
1、安装使用magic-api
springboot项目中引入依赖
<dependency>
<groupId>org.ssssssss</groupId>
<artifactId>magic-api-spring-boot-starter</artifactId>
<version>2.0.2</version>
</dependency>
同时还需要其它依赖(一般项目中都会使用到)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
在application.yml中配置(主要看magic-api部分即可,其它的是spring配置)
server:
port: 9999
magic-api:
web: /magic/web
resource:
location: D:/data/magic-api
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/magic-api-test?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
username: root
password: test
然后就可以通过web访问地址:http://localhost:9999/magic/web即可看到magic-api配置界面。
这个web访问地址对应application.yml配置文件中的magic-api.web配置路径
web界面中操作如下图
2、magic-api应用场景
为让大家体会到magic-api的用途,这里列举一些应用场景,以备不时之需。
模拟api接口
magic-api的返回json功能,可以模拟一个api接口,用于调试或者防止终端测试。
场景:开发过程中系统对接了一些第三方平台,但是这些第三方平台不在互联网,而是在一些内网(比如公安网、视频专网、政务网等等),开发、测试环境肯定没法访问到这些平台的服务接口,那么此时可以使用magic-api模拟接口,防止调用不到接口而导致的中断性测试。
示例:
内网接口 /getUserInfo
magic-api创建同名接口 /getUserInfo返回内容如下
import response;
return response.json({
msg:'请求成功',
code:200,
obj:{
id:1,
name:'张三'
}
});
大屏看板快速开发
开发可视化大屏数据呈现报表,各单位领导当下数一数二的装逼方式,大家应该都遇到过这样的需求。面对echart报表所需的大量接口,是否需要开发实体类、dao、service、controller呢?
使用magic-api就完全不用写这些三层结构代码(即便你们框架是自动生成代码),因为magic-api可以直接创建接口查询数据库sql
如下代码
var id = 123;
return db.select("""
select * from sys_user where id = #{id}
""");
这样就可以直接返回数据库查询结果,API接口直达数据库,无需三层结构代码。
Tips:不仅仅是支持sql查询,insert、update、分页操作都是支持,并且有事务管理、并且还支持mybatis语法,相当强大。而且magic-api中是支持逻辑判断、循环遍历等操作的。自带一套语法结构(逻辑判断、运算符等等)。
magic-api语法相关传送门:https://www.ssssssss.org/magic-api/pages/base/script/#关键字
接口相关的事情都可以做
- 返回固定json、字符串
- 数据库CRUD
- 获取http接口请求参数、处理返回参数
- 接口参数校验
- 调用java代码
- 接口鉴权、拦截器
- 拦截器
- 默认支持mysql,插件支持redis、mongo、elasticsearch等。
3、示例Demo
返回json
import response;
return response.json({
success : true,
message : '执行成功'
});
db分页
import response;
return response.page(10,[1,2,3,4,5]);
db查询
return db.select('select * from sys_user');
db插入
return db.insert("insert into sys_user(username,password) values('admin','admin)");
db更新
return db.update('delete from sys_user');
返回文本
import response;
return response.text('ok');
重定向
import response;
return response.redirect('/xxx/xx');
文件下载
import response;
return response.download('文件内容','test.txt');
输出图片
import response;
return response.image(bytes,'image/png');
请求第三方API接口
import http;
http.connect("http://localhost:9999/sql/select")
输出图片
import response;
return response.image(bytes,'image/png');
请求第三方API接口
import http;
http.connect("http://localhost:9999/sql/select")
还有许许多多的操作,这里就不做介绍了,这个工具非常强大,使用过才知道有多好,在某些使用场景中非常方便快捷。
|