IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【实用工具】magic-api接口快速开发框架 -> 正文阅读

[Java知识库]【实用工具】magic-api接口快速开发框架

【实用工具】magic-api接口快速开发框架

magic-api是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口。 无需定义ControllerServiceDaoMapperXMLVO等Java对象即可完成常见的HTTP API接口开发。

自学能力较强的朋友传送门:https://www.ssssssss.org/magic-api/

友情提示:如果不是急需使用的,请从第二节开始阅读

1、安装使用magic-api

springboot项目中引入依赖

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

同时还需要其它依赖(一般项目中都会使用到)

<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-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.27</version>
</dependency>

在application.yml中配置(主要看magic-api部分即可,其它的是spring配置)

server:
  port: 9999
magic-api:
  #配置web页面入口
  web: /magic/web
  resource:
  	#配置文件存储位置。当以classpath开头时,为只读模式
    #mac用户请改为可读写的目录
    #如果不想存到文件中,可以参考配置将接口信息存到数据库、Redis中(或自定义)
    location: D:/data/magic-api

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/magic-api-test?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
    username: root
    password: test

然后就可以通过web访问地址:http://localhost:9999/magic/web即可看到magic-api配置界面。

这个web访问地址对应application.yml配置文件中的magic-api.web配置路径

web界面中操作如下图

magic-api操作界面

2、magic-api应用场景

为让大家体会到magic-api的用途,这里列举一些应用场景,以备不时之需。

模拟api接口

magic-api的返回json功能,可以模拟一个api接口,用于调试或者防止终端测试。

场景:开发过程中系统对接了一些第三方平台,但是这些第三方平台不在互联网,而是在一些内网(比如公安网、视频专网、政务网等等),开发、测试环境肯定没法访问到这些平台的服务接口,那么此时可以使用magic-api模拟接口,防止调用不到接口而导致的中断性测试。

示例:

内网接口 /getUserInfo

magic-api创建同名接口 /getUserInfo返回内容如下

import response;
return response.json({
   msg:'请求成功',
   code:200,
   obj:{
      id:1,
      name:'张三'
   }
});

大屏看板快速开发

开发可视化大屏数据呈现报表,各单位领导当下数一数二的装逼方式,大家应该都遇到过这样的需求。面对echart报表所需的大量接口,是否需要开发实体类、dao、service、controller呢?

使用magic-api就完全不用写这些三层结构代码(即便你们框架是自动生成代码),因为magic-api可以直接创建接口查询数据库sql

如下代码

var id = 123;
return db.select("""
    select * from sys_user where id = #{id}
""");

这样就可以直接返回数据库查询结果,API接口直达数据库,无需三层结构代码。

Tips:不仅仅是支持sql查询,insert、update、分页操作都是支持,并且有事务管理、并且还支持mybatis语法,相当强大。而且magic-api中是支持逻辑判断、循环遍历等操作的。自带一套语法结构(逻辑判断、运算符等等)。

magic-api语法相关传送门:https://www.ssssssss.org/magic-api/pages/base/script/#关键字

接口相关的事情都可以做

  • 返回固定json、字符串
  • 数据库CRUD
  • 获取http接口请求参数、处理返回参数
  • 接口参数校验
  • 调用java代码
  • 接口鉴权、拦截器
  • 拦截器
  • 默认支持mysql,插件支持redis、mongo、elasticsearch等。

3、示例Demo

返回json

import response;
//直接返回该json,不会被包装处理
return response.json({
    success : true,
    message : '执行成功'
});

db分页

import response;
//返回: 共计10条,第一页的5条数据
return response.page(10,[1,2,3,4,5]);

db查询

return db.select('select * from sys_user');

db插入

return db.insert("insert into sys_user(username,password) values('admin','admin)");

db更新

return db.update('delete from sys_user'); 

返回文本

import response;
//直接返回该text,不会被包装处理
return response.text('ok');

重定向

import response;
//重定向到该地址,内部利用HttpServletResponse的sendRedirect方法
return response.redirect('/xxx/xx');

文件下载

import response;
return response.download('文件内容','test.txt');

输出图片

import response;
// 输出图片
return response.image(bytes,'image/png');

请求第三方API接口

import http;
http.connect("http://localhost:9999/sql/select") 

输出图片

import response;
// 输出图片
return response.image(bytes,'image/png');

请求第三方API接口

import http;
http.connect("http://localhost:9999/sql/select") 

还有许许多多的操作,这里就不做介绍了,这个工具非常强大,使用过才知道有多好,在某些使用场景中非常方便快捷。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 00:56:31  更:2022-09-04 01:00:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:16:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码