【实用工具】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.ssssssssgroupId>
    <artifactId>magic-api-spring-boot-starterartifactId>
    <version>2.0.2version>
dependency>

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

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starterartifactId>
dependency>
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-testartifactId>
    <scope>testscope>
dependency>
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-jdbcartifactId>
dependency>
<dependency>
    <groupId>mysqlgroupId>
    <artifactId>mysql-connector-javaartifactId>
    <version>8.0.27version>
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接口快速开发框架_第1张图片

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") 

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

你可能感兴趣的:(实用工具,magic-api,接口,api,工具)