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

文摘   2024-11-12 08:00   新疆  

最新实战案例锦集:《Spring Boot3实战案例合集》持续更新,每天至少更新一篇文章,订阅后将赠送文章最后展示的所有MD文档(学习笔记)。

环境: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?serverTimezone=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对象@Servicepublic 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还支持其它非常丰富的功能。具体查看对应的文档。

以上是本篇文章的全部内容,如对你有帮助帮忙点赞+转发+收藏

推荐文章

SpringBoot高并发!业务方法重试就该使用它

性能提升!Spring Boot使用Guava中3大神技

任务重复执行?SpringBoot 一个注解轻松搞定分布式任务调度

基于Spring Boot一个注解实现加解密与签名【非常详细】

当心!SpringBoot在以下几种情况将导致代理失效

完美!SpringBoot + HTML模板高效生成PDF文档

总结7种JVM出现OOM时的原因及解决方案

SpringBoot强大的分布式锁组件Lock4j,支持多种实现

SpringBoot自带Controller接口监控,赶紧用起来

强大!基于SpringBoot实现AOP的动态热插拔功能

Java开发人员必须掌握的11种干净代码最佳实践

SpringBoot3第三方接口调用10种方式,最后一种你肯定没用过

提升系统吞吐量,详解JDK21虚拟线程,炸裂

SpringBoot优雅定制接口参数格式转换

接口响应慢?掌握这优化技巧速度飙升

Spring全家桶实战案例源码
spring, springboot, springcloud 案例开发详解
 最新文章