当前位置 : 主页 > 编程语言 > java >

magic-api初体验 Java开发的福利来了

来源:互联网 收集:自由互联 发布时间:2022-09-02
话说可以debug的语言就是门好语言,magic-script是一款基于JVM的脚本语言,集万千语言优点于一身,再其之上,作者又开发的magic-api,更是springboot便捷体系下的一大开发利器,拥有方便的在线web端

话说可以debug的语言就是门好语言,magic-script是一款基于JVM的脚本语言,集万千语言优点于一身,再其之上,作者又开发的magic-api,更是springboot便捷体系下的一大开发利器,拥有方便的在线web端debug能力,兼具脚本语言的便捷,又具有编译型语言的性能优势,其Linq语法更是奇妙的让这个小巧的语言拥有了类sql语法的能力,Lambda表达式语法,异步方法...让你方便的实现你的想法,好了,吹不动了,magic-api的文档相当全面,有兴趣的可以点击链接查看,还有在线演示,大多数场景使用,直接参考官方文档即可

​​简介 | magic-api ​​https://www.ssssssss.org/magic-api/pages/quick/intro/​​

简介

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

​​​​特性

  • 支持​​MySQL​​、​​MariaDB​​、​​Oracle​​、​​DB2​​、​​PostgreSQL​​、​​SQLServer​​等支持​​jdbc​​规范的数据库
  • 支持非关系型数据库​​Redis​​、​​Mongodb​​、​​ElasticSearch​​
  • 支持动态配置定时任务
  • 支持集群部署、接口自动同步
  • 支持分页查询以及自定义分页查询
  • 支持多数据源配置,支持在线配置数据源
  • 支持​​SQL​​缓存,以及自定义​​SQL​​缓存
  • 支持自定义​​JSON​​结果、自定义分页结果
  • 支持对接口权限配置、拦截器等功能
  • 支持运行时动态修改数据源
  • 支持​​Swagger​​接口文档生成
  • 支持可插拔式的插件机制
  • 支持​​i18n​​国际化
  • 支持团队协作,可显示在线人数、以及他人正在编辑和浏览的接口等功能
  • 基于​​magic-script (opens new window)​​脚本引擎,动态编译,无需重启,实时发布
  • 支持​​Linq​​式查询,关联、转换更简单
  • 支持数据库事务、​​SQL​​支持拼接,占位符,判断等语法
  • 支持文件上传、下载、输出图片
  • 支持脚本历史版本对比与恢复
  • 支持脚本代码自动提示、参数提示、悬浮提示、错误提示
  • 支持导入​​Spring​​中的​​Bean​​、​​Java​​中的类
  • 支持在线调试
  • 支持自定义工具类、自定义模块包、自定义类型扩展、自定义方言、自定义列名转换等自定义操作

 

快速开始

我们将通过一个简单的demo来阐述magic-api的功能。假设您已经:

  • 拥有​​Java​​开发环境及相关​​IDE​​。
  • 拥有​​Mysql​​环境。
  • 熟悉​​Spring Boot​​。
  • 熟悉​​Maven​​。

​ 创建一张测试表​​TestData​​,结构如下

id

name

1

magicApi

2

xiaoDong

DDL如下:

create table test_data
(
id bigint not null
primary key,
name varchar(100) null
);
INSERT INTO test_data (id, name) VALUES (1, 'magicApi');
INSERT INTO test_data (id, name) VALUES (2, 'xiaoDong');

​​​​初始化工程

​ 创建一个空的​​Spring Boot​​工程, 以​​mysql​​作为默认数据库进行演示。

​​​​添加依赖

引入​​Spring Boot Starter​​父工程:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.3</version>
<relativePath/>
</parent>

​ 引入​​magic-api-spring-boot-starter​​依赖。

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

​ 引入​​spring-boot-starter​​,​​spring-boot-starter-web​​, ​​spring-boot-starter-test​​, ​​mysql​​依赖。

<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​​

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

​​​​访问api管理界面

启动项目之后,访问​​http://localhost:9999/magic/web​​ 即可看到Web页面

​​​​三分钟写出查询接口

1. 创建分组

点击创建分组按钮后,输入分组信息,点击创建。

magic-api初体验 Java开发的福利来了_spring

2. 新建接口

右键分组,点击新建接口。

magic-api初体验 Java开发的福利来了_spring_02

在编辑器输入内容后,填写接口名称和及其路径。

var sql = """
select * from test_data
"""

return db.select(sql)

magic-api初体验 Java开发的福利来了_自定义_03

​ ​​ctrl+s​​保存后,即可访问接口。

3.访问接口

> curl http://localhost:9999/test/test

{
"code": 1,
"message": "success",
"data": [
{
"id": 1,
"name": "magicApi"
},
{
"id": 2,
"name": "xiaoDong"
}
],
"timestamp": 1638192442535,
"executeTime": 9
}

​ 也可以通过​​web​​界面执行。

magic-api初体验 Java开发的福利来了_自定义_04

​​​​小结

​ 通过以上几个步骤,我们就实现了一个简单的查询功能。省去了​​Controller​​、​​Service​​、​​Dao​​、​​Mapper​​、​​XML​​、​​VO​​等模板代码的工作量。

网友评论