不等待后端,前端通过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是我们在上面配置的接口导出的目录,导出的目录下,有三个文件夹,分别是 api、function、datasource,我起的组的名称是 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 更多示例,可以跳转官方示例
相关推荐
IT_陈寒13 小时前
Vue的数组更新把我坑惨了
前端·人工智能·后端
高晶13 小时前
Android 智能语音开发新手入门实战
后端·程序员
励志不掉头发的内向程序员13 小时前
鼠标点一下,图形是怎么画出来的?拆解 CAD 的 Action 状态机
后端·架构
高晶13 小时前
Android 机器视觉新手入门:从扫码到人脸实战
后端·程序员
写码跑山的老艾13 小时前
基于 FSB 快速搭建 AI 客服:专家扩展与 Spring Boot 接入
后端
云边有个稻草人13 小时前
从语句编写到执行追踪:金仓 SQL 编辑器实战指南
后端
用户2049375549513 小时前
中文流式识别偶发重复词的定位与修复实践
后端
小蒜学长14 小时前
基于Java的公司采购系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·公司采购系统
小坏讲微服务14 小时前
Spring Boot 4 新特性全解析:从上手到生产实战
java·spring boot·后端·架构·springboot4
huaweichenai16 小时前
spring boot 实现file文件上传
java·spring boot·后端