不等待后端,前端通过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 更多示例,可以跳转官方示例
相关推荐
哎呦没27 分钟前
大学生就业招聘:Spring Boot系统的架构分析
java·spring boot·后端
_.Switch1 小时前
Python Web 应用中的 API 网关集成与优化
开发语言·前端·后端·python·架构·log4j
杨哥带你写代码2 小时前
足球青训俱乐部管理:Spring Boot技术驱动
java·spring boot·后端
AskHarries3 小时前
读《show your work》的一点感悟
后端
A尘埃3 小时前
SpringBoot的数据访问
java·spring boot·后端
yang-23073 小时前
端口冲突的解决方案以及SpringBoot自动检测可用端口demo
java·spring boot·后端
Marst Code3 小时前
(Django)初步使用
后端·python·django
代码之光_19803 小时前
SpringBoot校园资料分享平台:设计与实现
java·spring boot·后端
编程老船长3 小时前
第26章 Java操作Mongodb实现数据持久化
数据库·后端·mongodb
IT果果日记4 小时前
DataX+Crontab实现多任务顺序定时同步
后端