1 简介
magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发
2 特性
- 支持MySQL、MariaDB、Oracle、DB2、PostgreSQL、SQLServer 等支持jdbc规范的数据库
- 支持非关系型数据库Redis、Mongodb
- 支持集群部署、接口自动同步。
- 支持分页查询以及自定义分页查询
- 支持多数据源配置,支持在线配置数据源
- 支持SQL缓存,以及自定义SQL缓存
- 支持自定义JSON结果、自定义分页结果
- 支持对接口权限配置、拦截器等功能
- 支持运行时动态修改数据源
- 支持Swagger接口文档生成
- 基于magic-script脚本引擎,动态编译,无需重启,实时发布
- 支持Linq式查询,关联、转换更简单
- 支持数据库事务、SQL支持拼接,占位符,判断等语法
- 支持文件上传、下载、输出图片
- 支持脚本历史版本对比与恢复
- 支持脚本代码自动提示、参数提示、悬浮提示、错误提示
- 支持导入Spring中的Bean、Java中的类
- 支持在线调试
- 支持自定义工具类、自定义模块包、自定义类型扩展、自定义方言、自定义列名转换等自定义操作
3 快速开始
引入依赖包
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33<!-- 父包 -->
<parent>
<artifactId>spring-boot-dependencies</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.3.5.RELEASE</version>
</parent>
<dependencies>
<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.25</version>
</dependency>
<!-- magic-api依赖包 -->
<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-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.1</version>
</dependency>
</dependencies>修改
application.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17server:
port: 8080
# 配置静态资源启用 gzip 压缩
compression:
enabled: true
min-response-size: 128
#配置magic-api
magic-api:
web: /magic/web
#配置文件存储位置,当以classpath开头时,为只读模式
resource:
#location: /data/magic-api
type: database # 配置接口存储方式,这里选择存在数据库中
table-name: magic_api_file # 数据库中的表名
prefix: /magic-api # 前缀
# 其它配置请参考 https://ssssssss.org/magic-api/config/创建数据库以及数据表
1
2
3
4
5
6
7
8
9
10
11
12
13-- api接口表
CREATE TABLE magic_api_file (
`file_path` varchar(512) NOT NULL,
`file_content` mediumtext,
PRIMARY KEY (`file_path`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 测试表
CREATE TABLE test_magic_api (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;启动程序
访问接口配置平台
1
http://127.0.0.1:8080/magic/web/index.html
弹出一个类似与IDEA的页面,如下图所示:
4 配置Magic-api
创建分组
创建接口
查询列表命令为:
1
2
3
4var sql = """
select * from magic_api_file; // magic_api_file为数据库表
"""
return db.select(sql);
单表保存命令
1
2
3
4
5
6return db.table('test_magic_api') //表test_magic_api有两个字段, id 自增, name
.primary('id')
.save({
id, // 当file_path不为null时做修改,否则做插入
name: name
})分页查询命令
1
2
3
4var sql = """
select file_path from magic_api_file
"""
return db.page(sql,5,0) //每页5条,从第0开始
执行查询接口,结果如下图所示
这样一个简单的模拟查询数据库表记录的接口就完成了,省去了后台写的大量的测试代码,大大的节省了时间用来摸鱼。
具体需要查看更多关于magic-api的相关内容,可以查看 magic-api源码 以及 样例代码以及常用的脚本