不等待后端,前端通过magic-api自己配置接口查询mysql数据库


开始

关于 magic-api 简介的话,就不多说了,咱们可以直接通过官网的文档进行查看,点击跳转官网。我们此次使用的是 springboot+magic-api 进行简单的接口配置,我们先来看一下最后的效果:

springboot项目环境的配置

首先我们需要创建一个 springboot 项目,在项目中安装我们所需要的依赖,包括 swagger-ui 的以及 magic-api 所需的所有依赖,如下:

xml 复制代码
<dependencies>
    <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-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.27</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

    <!-- 以spring-boot-starter的方式引用 -->
    <dependency>
        <groupId>org.ssssssss</groupId>
        <artifactId>magic-api-spring-boot-starter</artifactId>
        <version>1.7.4</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <!-- swagger -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>
</dependencies>

magic-api + swagger + 数据库(application.properties配置)

magic-api相关配置

magic-api提供了两个api:magic-api.web magic-api.resource.location

  • magic-api.web 控制在浏览器地址中的地址前缀,例如:

    sh 复制代码
    magic-api.web: /magic/web
    # http://localhost:9999/magic/web/index.html
  • magic-api.resource.location 属性则是说明 api 文件的存储的位置,他存储了后期我们在浏览器配置的接口的一系列信息,在这个地址配置中,没有找到关于它的详细介绍,下面的一段只是作者的理解,可能存在误解,欢迎在评论区指出,项目所在磁盘的根目录开始:

    • mac 下,直接使用文件夹路径即可;
    • windows 下,如果项目在 E 盘,我们对应的根目录就是 E盘的根目录,这里填写对应的存储的根目录的绝对位置
    • 如果后期将配置的文件部署到服务器,需要将地址改为服务器的文件夹路径,然后把配置的文件上传到目标文件夹(只尝试了以本地计算机为服务器,局域网进行访问),把 jar 挂载在服务器即可。

    以 mac 为例:

    bash 复制代码
    magic-api.resource.location: /Users/wangtx/Desktop/magic-api-data

数据库连接

关于数据库的连接,就不用多说了,需要配置连接数据库所需的 驱动数据库地址用户名密码

ini 复制代码
spring.datasource.driver-class-name: com.mysql.cj.jdbc.Driver
spring.datasource.url: jdbc:mysql://127.0.0.1:3306/my_blog?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false
spring.datasource.username: root
spring.datasource.password: 12345678

swagger-ui

在这里,主要配置的是版本描述标题名称位置版本兼容,这里需要注意的是 location ,这里是 magic-api 导出的接口文件的地址,也就是本文说的 magic-api.resource.location 下的 api 的子目录,当我们配置完接口之后,会生成一个 group.json 的文件,对配置的接口进行一个组关联,这里的 location 即为该 json 的目录。配置如下:

ini 复制代码
magic-api.swagger-config.version = 1.0
magic-api.swagger-config.description = wangtx
magic-api.swagger-config.title = MagicAPI wangtx
magic-api.swagger-config.name = MagicAPIwangtx
magic-api.swagger-config.location = /Users/wangtx/Desktop/magic-api-data/api/dev_test/group.json
spring.mvc.pathmatch.matching-strategy: ant_path_matcher

关于 group.json 位置及目录结构如下:

说明

/Users/wangtx/Desktop/magic-api-data是我们在上面配置的接口导出的目录,导出的目录下,有三个文件夹,分别是 apifunctiondatasource,我起的组的名称是 dev_test ,因此导出的 group.json 位置如上图所示。

项目启动

我们配置完上面的部分,就可以启动项目了,启动完成之后,会有三个地址:

  • 第一个地址是本地调试使用
  • 第二个地址为局域网内的 ip+端口,可提供他人调取
  • 第三个接口是局域网配置接口地址
  • swagger 的地址是 ip+端口+swagger-ui.html,例如:http://127.0.0.1:9999/swagger-ui.html

接口配置

  1. 首先我们需要添加一个分组来存储接口,如下图所示:

  2. 在组中右键新建接口:

  3. 接口信息完善

增删改查示例

查询

js 复制代码
// return db.select(""" select * from my_blog.user_info where userName like concat('%',#{userName},'%') """);

// 多条件查询
// where 1 = 1 可写作 true,作为基础查询校验
return db.page(""" 
    select * from my_blog.user_info where 1 = 1
        ?{id, and id = #{id}} 
        ?{userName, and userName like concat('%',#{userName},'%')} 
        ?{loginName, and loginName like concat('%',#{loginName},'%')}
""");

删除

js 复制代码
// 物理删除
// return db.update("""delete from my_blog.user_info where id = #{id} """)
// 逻辑删除
db.update(""" update my_blog.user_info set deleteStatus = 1 where id = #{id} """)

新增

js 复制代码
// insert into my_blog.user_info(user_name,role) values('李富贵','admin')
return db.table('user_info').primary('id', () => uuid()).insert({
    "userName": body.userName,
    "loginName": body.loginName,
    "password": body.password,
    "idNumber": body.idNumber,
    "headerImg": body.headerImg
})

修改

js 复制代码
// db.update(""" update my_blog.user_info set userName = #{body.userName} where id = #{body.id} """)
return db.table('my_blog.user_info').primary('id').update(body)

  1. 关于springboot 完整代码地址,可以点击跳转代码
  2. 关于 magic-api 更多示例,可以跳转官方示例
相关推荐
森蓝情丶31 分钟前
我给 AI 搭了个法庭:一个前端仔的 LangGraph 实战全记录
前端·后端
JensCS猿34 分钟前
从 Spring Boot 回看 SSM 框架:手动挡与自动挡的驾驶哲学
后端
爱勇宝34 分钟前
干了近 8 年,一夜之间被裁:AI 时代,程序员最该害怕的不是 AI
前端·后端·程序员
科米米44 分钟前
嵌入式日志模块
后端
血小溅1 小时前
三大 AI 编码框架深度对比:GSD vs OpenSpec vs Superpowers
人工智能·后端
ThanksGive1 小时前
层级时间轮看门狗
后端
GetcharZp2 小时前
告别繁琐命令行!这款容器可视化神器,让 Docker/K8s 管理变得如此简单
后端
铁皮饭盒5 小时前
bun直接tsx,优雅!
javascript·后端
Cosolar6 小时前
藏在 Claude Code 里的极致浪漫:完整 187 条 Spinner Verbs 全收录
后端·程序员·代码规范
Csvn7 小时前
Linux 防火墙管理 — firewalld 实战
后端