我们一起聊聊不写一行代码通过UI界面配置HTTP接口

开发 前端
本篇文章将介绍一个非常优秀的快速开发框架magic-api。magic-api是一个基于Java的接口快速开发框架,它极大地简化了HTTP API接口的开发过程。

环境:SpringBoot2.7.18

1. 简介

本篇文章将介绍一个非常优秀的快速开发框架magic-api。magic-api是一个基于Java的接口快速开发框架,它极大地简化了HTTP API接口的开发过程。它具备以下特性:

  • 支持MySQL、MariaDB、Oracle、DB2、PostgreSQL、SQLServer 等支持jdbc规范的数据库
  • 支持非关系型数据库Redis、Mongodb
  • 支持集群部署、接口自动同步
  • 支持分页查询以及自定义分页查询
  • 支持多数据源配置,支持在线配置数据源
  • 支持SQL缓存,以及自定义SQL缓存
  • 支持自定义JSON结果、自定义分页结果
  • 支持对接口权限配置、拦截器等功能
  • 支持运行时动态修改数据源
  • 基于magic-script脚本引擎,动态编译,无需重启,实时发布
  • 支持数据库事务、SQL支持拼接,占位符,判断等语法
  • 支持脚本代码自动提示、参数提示、悬浮提示、错误提示
  • 支持导入Spring中的Bean、Java中的类
  • 支持自定义工具类、自定义模块包、自定义类型扩展、自定义方言、自定义列名转换等自定义操作

magic-api非常适用于需要快速开发大量HTTP API接口的场景,如企业级应用开发、微服务架构中的接口开发等。通过magic-api,开发者可以极大地提高开发效率,降低开发成本。

2. 环境准备

2.1 引入依赖

<dependency>
  <groupId>org.ssssssss</groupId>
  <artifactId>magic-api-spring-boot-starter</artifactId>
  <version>2.1.1</version>
</dependency>

目前最新版本2.1.1。有1年多没有更新了。

2.2 简单配置

magic-api:
  web: /mc-api

设置Web UI访问路径,如上配置后访问如下

图片图片

接下来就可以通过该界面配置各种HTTP API接口了。

3. 实战案例

接下来将详细的介绍magic-api所支持的各种模块查询功能。

3.1 数据源管理

两种方式使用数据源,一种是在项目中自己配置数据源,还有一种是直接通过UI界面配置数据源。

项目配置数据源

spring:
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/testjpa?serverTimeznotallow=GMT%2B8&useSSL=false&characterEncoding=UTF-8
    username: root
    password: xxxooo
    type: com.zaxxer.hikari.HikariDataSource

接下来就可以在UI中进行配置接口

图片图片

如上配置后,你就可以直接通过接口地址进行访问了。

图片图片

通过UI配置数据源。

图片图片

注意这里的Key属性,接下来编写接口时会使用这个Key。

配置接口

图片图片

这里数据源的访问:db.mydb

3.2 分页查询

通常不会将一个表的所有数据都查询出来,实际都会进行分页查询,列也不一定都需要,所以我们这里可以分页及设置需要查询的列。

图片图片

这里分别指定要查询的列及分页情况,你也可以不指定查询的分页码。

return db.mydb.table('big_table').columns("uid", "name", "age", "sex").page()

这时候我们请求接口时可以动态的指定查询分页参数信息。

图片图片

3.3 添加数据

图片

测试接口

图片

成功添加

3.4 通过SQL操作

图片

直接编写SQL语句进行查询数据,而这里分页无需配置,只需要在调用该接口时传入参数即可。

图片图片

3.5 使用MyBatis语法

目前支持一下关键字:<if>、<elseif>、<else>、<where>、<foreach>、<trim>、<set>。

示例:

var sql = """
    select * from big_table
  <where>
        <if test="name != null and name != ''">
         and name like concat('%',#{name},'%')
        </if>
    </where>
"""
return db.mydb.page(sql)

图片图片

查询示例

图片图片

3.6 HTTP接口调用

http模块是基于RestTemplate封装而来,目前只做了少量的封装。对于一些通用的配置可以使用自定义RestTemplate来实现。

示例

import http;
return http.connect('http://localhost:8001/users/info')
    .get()
    .getBody()

接口配置

图片图片

3.7 Redis数据查询

先引入相应的依赖

<dependency>
  <groupId>org.ssssssss</groupId>
  <artifactId>magic-api-plugin-redis</artifactId>
  <version>2.1.1</version>
</dependency>

其实你也可以不用它的这个依赖,它这依赖就干了一事,引入spring-boot-starter-data-redis。

配置

spring:
  redis:
    host: 127.0.0.1
    port: 6379
    password: xxxooo
    database: 3

以上配置完后就可以通过UI进行Redis相关的操作了

图片图片

这里你还可以指定动态参数;

import redis;
return redis.setex('pack:name', 600, name)

调用接口传递name参数;

图片

图片

数据成功添加到Redis中。

3.8 执行Java代码

注入Spring Bean对象

// 定义Bean对象
@Service
public class UserService {
  
  public List<String> list() {
    return Arrays.asList("a", "b", "c", "d") ;
  }
}

运行结果

图片图片

调用普通Java代码。

import 'java.util.Date' as Date;
import 'java.text.SimpleDateFormat' as SimpleDateFormat;
var now = new Date();
var df = new SimpleDateFormat('yyyy-MM-dd');
return df.format(now);

你也可以调用静态方法

import xxx.StringUtils;
return StringUtils.isBlank("") ;

以上仅仅是介绍了一丁点功能,magic-api还支持其它非常丰富的功能。具体查看对应的文档。

责任编辑:武晓燕 来源: Spring全家桶实战案例源码
相关推荐

2024-08-01 08:45:17

2023-11-29 09:04:00

前端接口

2024-02-20 21:34:16

循环GolangGo

2021-08-27 07:06:10

IOJava抽象

2023-08-04 08:20:56

DockerfileDocker工具

2023-08-10 08:28:46

网络编程通信

2022-05-24 08:21:16

数据安全API

2023-06-30 08:18:51

敏捷开发模式

2023-09-10 21:42:31

2023-07-18 07:56:20

2023-03-29 08:26:06

2022-11-12 12:33:38

CSS预处理器Sass

2022-10-28 07:27:17

Netty异步Future

2022-02-14 07:03:31

网站安全MFA

2023-07-27 07:46:51

SAFe团队测试

2022-06-26 09:40:55

Django框架服务

2022-04-06 08:23:57

指针函数代码

2023-04-26 07:30:00

promptUI非结构化

2024-02-26 00:00:00

Go性能工具

2022-01-04 12:08:46

设计接口
点赞
收藏

51CTO技术栈公众号