【实用工具】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/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接口快速开发框架相关推荐

  1. 推荐一个 Java 接口快速开发框架

    欢迎关注方志朋的博客,回复"666"获面试宝典 今天给小伙伴们介绍一个Java接口快速开发框架-magic-api 简介 magic-api 是一个基于 Java 的接口快速开发框 ...

  2. 推荐一款基于 SpringBoot 的接口快速开发框架

    以下文章来源方志朋的博客,回复"666"获面试宝典 简介 magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为H ...

  3. 推荐一个 Java 接口快速开发框架,超级nice!

    点击关注公众号,实用技术文章及时了解 今天给小伙伴们介绍一个Java接口快速开发框架-magic-api 简介 magic-api 是一个基于 Java 的接口快速开发框架,编写接口将通过 magic ...

  4. 验证码识别服务器,一个非常好用的验证码识别工具类api接口

    一个非常好用的验证码识别工具类api接口 群发?批量操作?验证码?可能乖孩子对于这些单个有了解,但是对于合在一起就不知道其存在的意义.这个对 于我们日常的生活可能是没有什么用处的,但是对于需要批量检测 ...

  5. php 使用api接口测试工具,php API接口如何进行测试 - Codeception

    如题codeception 单元测试 Undefined index: HTTP_HOST 报错 测试驱动代码: commonconfigmain.php 跨域登陆代码 : 测试驱动运行到common ...

  6. 大学生怎么高效的免费搜题?怎么获取题库API接口快速开发自己的搜题产品?

    题库的优势 一个多亿的题库不仅免费搜题而且提供开放接口,便于用户快速开发对接搜题产品 API接口开放对接 许多在校生特别是IT专业的学生很多都想制作一款受欢迎的产品,而搜题产品正好符合广大学生的需求, ...

  7. 接口模糊测试工具java,api 接口 fuzz 测试初探

    Alt pic 目标 在日常测试工作中,经常会有api接口的测试,除了正向流程的测试之外,我们经常还需要覆盖一些异常情况. 例如: 不合法字符串 字符串超长 应该是数字类型的,传入了字母 参数为空 传 ...

  8. 好用实用稳定的API接口【物流快递篇】

    先来科普个概念,开放应用程序的API(即Application Program Interface,应用程序接口)可以让开发者在无需访问源码,或理解内部工作机制细节的情况下,调用他人共享的功能和资源. ...

  9. 利用工具及api接口写博文

    使用工具写博客 像windows live writer,zoundry blog writer,等,比较好用. 不过要知道对应的设置方式. cnblogs采用的是 Metaweblog API 做为 ...

最新文章

  1. 机器学习重新构想计算的构建块
  2. 深入理解C++中的mutable关键字
  3. 3、绘制E-R图:数据库概要设计阶段
  4. Quick Cocos2dx 调试问题
  5. linux远程登录ssh免密码
  6. C++之整理一些最近看书的收获
  7. python函数执行shell_6方法,python中执行shell命令
  8. IOS初始化控制器的两种方法
  9. Memcached、MongoDB、Redis和tokyotyrant
  10. vue3 @/cli脚手架搭建项目
  11. 给你工资1000一天,让你在没有网络手机电脑的大山里做森林管理工作半年,你愿意吗?
  12. linux mysql查看数据库编码_MySQL查看和修改字符编码的实现方法
  13. node解决通过npm无法安装forever的方法
  14. imu相机标定_【光电视界】多传感器融合标定方法汇总
  15. 苹果Mac好用的图片编辑工具:Acorn 再升级
  16. jquery第三章练习三(制作京东常见问题分类页面)
  17. html5 模拟scrollview,horizontalScrollView
  18. 【java】BeanUtils.populate()的使用
  19. 2021年上半年最接地气的Android面经,隔壁都馋哭了
  20. 跟着柴毛毛学Spring(1)——纵观Spring

热门文章

  1. 智能卡操作系统COS概述
  2. 启程,万里长征的第一步
  3. nodejs简单学习
  4. 闪迪u盘适合装linux,闪迪给U盘加了一个接头,解决了iPhone用户最大烦恼
  5. Android开发收音机功能,基于Android系统的FM收音机功能的设计与实现
  6. 按字节编址,求地址间的存储容量方法
  7. 2009-2015年阅读书籍
  8. 如何扫除“无孔不入,防不胜防”的发帖机
  9. 怎么将Java中的小瓶子删掉_AcWing 1224. 交换瓶子 JAVA O(n)
  10. linux unicode utf8.h,linux shell下16进制 “\uxxxx” unicode to UTF-8中文