【实用工具】magic-api接口快速开发框架
【实用工具】magic-api接口快速开发框架
magic-api
是一个基于Java的接口快速开发框架,编写接口将通过magic-api
提供的UI
界面完成,自动映射为HTTP
接口。 无需定义Controller
、Service
、Dao
、Mapper
、XML
、VO
等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/webresource:#配置文件存储位置。当以classpath开头时,为只读模式#mac用户请改为可读写的目录#如果不想存到文件中,可以参考配置将接口信息存到数据库、Redis中(或自定义)location: D:/data/magic-apispring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/magic-api-test?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8username: rootpassword: test
然后就可以通过web访问地址:http://localhost:9999/magic/web即可看到magic-api配置界面。
这个web访问地址对应application.yml配置文件中的magic-api.web配置路径
web界面中操作如下图
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接口快速开发框架相关推荐
- 推荐一个 Java 接口快速开发框架
欢迎关注方志朋的博客,回复"666"获面试宝典 今天给小伙伴们介绍一个Java接口快速开发框架-magic-api 简介 magic-api 是一个基于 Java 的接口快速开发框 ...
- 推荐一款基于 SpringBoot 的接口快速开发框架
以下文章来源方志朋的博客,回复"666"获面试宝典 简介 magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为H ...
- 推荐一个 Java 接口快速开发框架,超级nice!
点击关注公众号,实用技术文章及时了解 今天给小伙伴们介绍一个Java接口快速开发框架-magic-api 简介 magic-api 是一个基于 Java 的接口快速开发框架,编写接口将通过 magic ...
- 验证码识别服务器,一个非常好用的验证码识别工具类api接口
一个非常好用的验证码识别工具类api接口 群发?批量操作?验证码?可能乖孩子对于这些单个有了解,但是对于合在一起就不知道其存在的意义.这个对 于我们日常的生活可能是没有什么用处的,但是对于需要批量检测 ...
- php 使用api接口测试工具,php API接口如何进行测试 - Codeception
如题codeception 单元测试 Undefined index: HTTP_HOST 报错 测试驱动代码: commonconfigmain.php 跨域登陆代码 : 测试驱动运行到common ...
- 大学生怎么高效的免费搜题?怎么获取题库API接口快速开发自己的搜题产品?
题库的优势 一个多亿的题库不仅免费搜题而且提供开放接口,便于用户快速开发对接搜题产品 API接口开放对接 许多在校生特别是IT专业的学生很多都想制作一款受欢迎的产品,而搜题产品正好符合广大学生的需求, ...
- 接口模糊测试工具java,api 接口 fuzz 测试初探
Alt pic 目标 在日常测试工作中,经常会有api接口的测试,除了正向流程的测试之外,我们经常还需要覆盖一些异常情况. 例如: 不合法字符串 字符串超长 应该是数字类型的,传入了字母 参数为空 传 ...
- 好用实用稳定的API接口【物流快递篇】
先来科普个概念,开放应用程序的API(即Application Program Interface,应用程序接口)可以让开发者在无需访问源码,或理解内部工作机制细节的情况下,调用他人共享的功能和资源. ...
- 利用工具及api接口写博文
使用工具写博客 像windows live writer,zoundry blog writer,等,比较好用. 不过要知道对应的设置方式. cnblogs采用的是 Metaweblog API 做为 ...
最新文章
- 机器学习重新构想计算的构建块
- 深入理解C++中的mutable关键字
- 3、绘制E-R图:数据库概要设计阶段
- Quick Cocos2dx 调试问题
- linux远程登录ssh免密码
- C++之整理一些最近看书的收获
- python函数执行shell_6方法,python中执行shell命令
- IOS初始化控制器的两种方法
- Memcached、MongoDB、Redis和tokyotyrant
- vue3 @/cli脚手架搭建项目
- 给你工资1000一天,让你在没有网络手机电脑的大山里做森林管理工作半年,你愿意吗?
- linux mysql查看数据库编码_MySQL查看和修改字符编码的实现方法
- node解决通过npm无法安装forever的方法
- imu相机标定_【光电视界】多传感器融合标定方法汇总
- 苹果Mac好用的图片编辑工具:Acorn 再升级
- jquery第三章练习三(制作京东常见问题分类页面)
- html5 模拟scrollview,horizontalScrollView
- 【java】BeanUtils.populate()的使用
- 2021年上半年最接地气的Android面经,隔壁都馋哭了
- 跟着柴毛毛学Spring(1)——纵观Spring
热门文章
- 智能卡操作系统COS概述
- 启程,万里长征的第一步
- nodejs简单学习
- 闪迪u盘适合装linux,闪迪给U盘加了一个接头,解决了iPhone用户最大烦恼
- Android开发收音机功能,基于Android系统的FM收音机功能的设计与实现
- 按字节编址,求地址间的存储容量方法
- 2009-2015年阅读书籍
- 如何扫除“无孔不入,防不胜防”的发帖机
- 怎么将Java中的小瓶子删掉_AcWing 1224. 交换瓶子 JAVA O(n)
- linux unicode utf8.h,linux shell下16进制 “\uxxxx” unicode to UTF-8中文