magic-api
是一个基于Java的接口快速开发框架,编写接口将通过magic-api
提供的UI
界面完成,自动映射为HTTP
接口。 无需定义Controller
、Service
、Dao
、Mapper
、XML
、VO
等Java对象即可完成常见的HTTP API
接口开发。
自学能力较强的朋友传送门:https://www.ssssssss.org/magic-api/
友情提示:如果不是急需使用的,请从第二节开始阅读
springboot项目中引入依赖
<dependency>
<groupId>org.ssssssssgroupId>
<artifactId>magic-api-spring-boot-starterartifactId>
<version>2.0.2version>
dependency>
同时还需要其它依赖(一般项目中都会使用到)
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starterartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-jdbcartifactId>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>8.0.27version>
dependency>
在application.yml中配置(主要看magic-api部分即可,其它的是spring配置)
server:
port: 9999
magic-api:
#配置web页面入口
web: /magic/web
resource:
#配置文件存储位置。当以classpath开头时,为只读模式
#mac用户请改为可读写的目录
#如果不想存到文件中,可以参考配置将接口信息存到数据库、Redis中(或自定义)
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界面中操作如下图
为让大家体会到magic-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/#关键字
import response;
//直接返回该json,不会被包装处理
return response.json({
success : true,
message : '执行成功'
});
import response;
//返回: 共计10条,第一页的5条数据
return response.page(10,[1,2,3,4,5]);
return db.select('select * from sys_user');
return db.insert("insert into sys_user(username,password) values('admin','admin)");
return db.update('delete from sys_user');
import response;
//直接返回该text,不会被包装处理
return response.text('ok');
import response;
//重定向到该地址,内部利用HttpServletResponse的sendRedirect方法
return response.redirect('/xxx/xx');
import response;
return response.download('文件内容','test.txt');
输出图片
import response;
// 输出图片
return response.image(bytes,'image/png');
import http;
http.connect("http://localhost:9999/sql/select")
import response;
// 输出图片
return response.image(bytes,'image/png');
import http;
http.connect("http://localhost:9999/sql/select")
还有许许多多的操作,这里就不做介绍了,这个工具非常强大,使用过才知道有多好,在某些使用场景中非常方便快捷。