# 更新日志

# [v1.2.2] 2021.06.15

  • 新增自定义构建异常结果接口
  • 新增启动后接口URL打印
  • 修复在删除分组后,无法上传该分组的BUG
  • 修复可能存在的循环引用的BUG
  • 优化UI左侧树搜索,不在区分大小写
  • 优化单表API,新增支持delete方法、save方法增加beforeQuery参数,用于判断数据是否存在的判断标准

# [v1.2.1] 2021.05.31

  • 新增远程推送功能
  • 新增注销登录功能
  • 修复上传不支持数据源的问题
  • 修复搜索未验证是否登录的问题
  • 优化UI右键菜单,增加图标
  • 优化上传逻辑,分为增量模式和全量模式

# [v1.2.0] 2021.05.24

# [v1.1.3] 2021.05.18

  • 新增获取函数、接口详情的接口
  • 修复无法创建分组的BUG

# [v1.1.2] 2021.05.17

  • 新增支持配置json结果code
  • 新增接口、函数、分组的增删改查接口。
  • 修复在测试、删除数据源时未释放链接的问题
  • 修复分组无法移动的问题
  • 优化设置RequestEntity时机
  • 优化构建分页结果接口,增加RequestEntityPage参数
  • 优化对SpringBoot的兼容性
  • 优化UI样式,修复部分样式错位问题

# [v1.1.1] 2021.05.06

  • 修复调用context.get时可能获取不到变量值的问题
  • 修复http模块在某些情况下无法携带hedaer的BUG
  • 修复无法创建druid数据源的BUG
  • 修复在以组件方式引入时可能造成重复保存的BUG
  • 优化SQL拦截器,增加参数RequestEntity
  • 优化Swagger中的RequestBody改为非必填

# [v1.1.0] 2021.04.19

  • 新增分组选项、分组路径变量配置
  • 新增jsonstringify 转换器,用于字符串转JSONJSON转字符串
  • 新增全局搜索功能
  • 新增阻止页面关闭的配置
  • 新增数据源参数maxRows
  • 新增http模块(基于RestTemplate)
  • 新增单表API方法orderBygroupBy
  • 新增单表API方法notNullnotBlank 用于过滤where中非空参数
  • 修复断点会自动清除的BUG
  • 修复使用redis存储时无法删除接口的BUG
  • 修复脚本不支持new内部类的问题
  • 优化测试逻辑,测试时将serverURL参数当为baseURL,不在拼接处理
  • 优化swagger文档生成,支持path参数
  • 优化UI样式,显示接口的请求方法

# [v1.0.2] 2021.04.12

  • 新增示例项目 magic-api-example (opens new window)
  • 新增错误提示超时时间配置
  • 新增单表APIdelete方法
  • 修复oracle执行插入无法返回主键的问题
  • 修复单表API中save方法返回的不是主键的问题
  • 优化代码提高兼容性,不在强制要求配置数据源

# [v1.0.1] 2021.04.06

  • 新增uuid函数
  • 新增任意值到Boolean类型的隐式转换
  • 修复无法访问静态内部类的问题
  • 修复无法给没有初始值的变量进行赋值的BUG
  • 修复无法将接口移动到接口分组上(没有分组路径)的BUG
  • 修复移动接口可能造成接口重复的问题
  • 修复编辑器可能无法显示内容的BUG
  • 修复编辑器中RequestBody可能被覆盖的问题
  • 修复在使用达梦数据库时,无法使用数据库存储的问题
  • 修复在使用文件存储时无法创建数据源的BUG
  • 优化方法调用的悬浮提示
  • 优化带有可变参数的代码提示
  • 优化单表API,列名现在可以从驼峰命名转为下划线
  • 优化单表API的save方法,在执行插入时可设置主键值
  • 优化单表API的主键非空判断逻辑,由!=null转为notBlank
  • 优化集合函数filter,不在强制要求返回Boolean类型
  • 优化部分代码,提取一些魔法字符串到常量类中

# [v1.0.0] 2021.03.29

  • 新增自定义用户名密码登录验证
  • 修复函数列表数据源管理 拖动样式不正确的问题
  • 修复解析文件内容时因意外的格式造成的解析错误
  • 修复readonlydbredis存储不生效的问题
  • 修复数据源管理中异常信息显示不正常的BUG
  • 修复无法为JavaBean属性赋值的BUG
  • 修复在RequestBody填写错误时,无法执行测试的BUG
  • 修复在配置LongString时,历史记录时间显示不正确的问题
  • 优化UI权限配置,使其更细致化
  • 优化获取接口选项值的接口
  • 优化前端读取配置的逻辑,使其更实用
  • 优化前端验证逻辑,路径变量中的value为必填
  • 优化脚本备份逻辑,减少备份次数
  • 优化部分代码,兼容Gson,使其不在报错

# [v1.0.0-beta2] 2021.03.22

  • 新增动态数据源管理(可在页面动态修改数据源)
  • 新增路径变量验证
  • 修复打成jar包后无法导出接口的BUG
  • 修复复选框未回显的问题
  • 修复在新增函数时,参数类型不回显的问题
  • 修复不能关闭跨域配置的BUG
  • 修复打包后无法读取js配置文件的问题
  • 修复权限配置不正确的BUG
  • 修复配置抛出异常无效的BUG
  • 优化JSON构建接口,参数统一封装,减少方法
  • 优化读取资源逻辑,增强数据库兼容性
  • 优化日志打印,方便排除错误
  • 优化模拟测试,增加支持路径变量配置

# [v1.0.0-beta1] 2021.03.18

# 新增功能

  • 新增存储资源配置项(可在配置文件中配置存储方式)
  • 新增强制只读模式
  • 新增单表操作API
  • 新增接口参数类型、默认值配置
  • 新增接口参数验证、header验证功能(支持必填、表达式和正则验证)
  • 新增自定义响应结构配置(可在配置文件中配置响应结构)
  • 新增语法 ```language ``` ,可执行对实现JSR223规范的脚本语言,也可自定义
  • 新增接口导入、导出功能
  • 新增跨域开关配置,现在可以关闭跨域功能

# BUG修复

  • 修复历史记录排序不正确的问题
  • 修复可能无法加载后台设置的编辑器配置的BUG
  • 修复缓存在指定有效期时可能无效的BUG
  • 修复驼峰命名转换在列名全大写时未转换的问题
  • 修复三元表达式在赋值语句中表现不正确的BUG

# 优化

  • 优化代码编辑器,增加是否要自动保存的配置
  • 优化变量定义,现在可以省略赋值语句。
  • 优化Json构建接口,增加RequestEntity参数可获取requestresponse、接口等相关参数及配置
  • 优化数据库、redis资源读取逻辑,加快启动速度
  • 优化linq语法,linq关键字不在区分大小写
  • 优化UI界面,替换部分图标,增加tab页图标,方便区分接口函数
  • 优化方法调用,lambda表达式可隐式转换为JavaFunctionalInterface接口
  • 优化方法调用,允许调用接口的default方法

# [v0.7.1] 2021.03.01

  • 新增数据库存储、Redis存储方案
  • 新增支持可自定义存储方式
  • 新增屏蔽检测更新的选项
  • 新增接口执行时间executeTime
  • 修复无法自动注入db模块的BUG I38LDB (opens new window)
  • 修复swagger无法测试带有RequestBody的请求
  • 修复类型转换时值为0的问题 I398ND (opens new window)
  • 修复在省略as的情况下,代码提示不正确的问题
  • 修复切换脚本时,代码编辑器滚动条定位不正确的问题
  • 优化生成swagger文档,显示接口描述
  • 优化读取资源逻辑,兼容Spring Boot 2.1.x 2.2.x 2.3.x 2.4.x
  • 优化代码,增加异常日志输出,方便定位问题

# [v0.7.0] 2021.02.22

  • 弃用数据库存储方案,改为文件存储
  • 新增===!== 比较运算符
  • 新增::int::double等类型转换语法
  • 修复无法获取接口选项的问题
  • 修复#{}结果为null时未拼接占位符的问题
  • 优化脚本调用逻辑,可调用java方法非静态方法
  • 优化import命令,在特定场景下可省略as
  • 优化swagger支持参数默认值
  • 优化mongo模块兼容Spring Boot
  • 优化==!= 逻辑,弱化类型
  • 移除界面中顶部删除按钮
  • PR !1 浏览文件修复Java枚举代码提示获取不到成员的问题 (opens new window)

# [v0.6.1] 2021.02.01

# [v0.6.0] 2021.01.04

  • 新增在线自定义函数
  • 增强import语句,可引入其他接口或自定义的函数
  • 修复函数roundceilfloorprecent未注册的问题
  • 修复Vue组件可能出现不刷新的问题
  • 优化ifnull 函数,改为ifnull(var,defaultValue) 的形式
  • 优化magic.call/execute方法,不在要求携带prefix
  • 优化正则表达式语法高亮

# [v0.5.5] 2020.12.28

  • 新增Linq式查询以及相关函数
  • 新增聚合函数group_concatcountsummaxminavg
  • 新增函数roundceilfloorprecentdate_formatifnullnow
  • 新增自定义函数
  • 优化运行日志输出
  • 优化获取接口详情,兼容一些意外情况

# [v0.5.4] 2020.12.21

  • 新增代码悬浮提示
  • 修复编辑器的代码提示不完整的问题
  • 修复swagger在带有context-pathExecute404的问题
  • 修复assert失败时,未被转换为json结果的BUG
  • 修复接口信息中点击新增/删除Header或参数时,组件不刷新的问题
  • 修复运行结果的组件可能不刷新的问题
  • 修复复制接口时会产生覆盖的问题
  • 修复脚本部分作用域未隔离的BUG
  • 优化Mapsort扩展方法,增加value参数以支持根据mapvalue排序
  • 优化代码提示
  • 优化部分组件样式
  • 示例网站新增一些Demo

# [v0.5.3] 2020.12.17

  • 修复无法修改分组路径的BUG
  • 修复sql中无法引入局部变量的BUG #I29LQG (opens new window)
  • 修复未携带参数的BUG
  • 修复引入组件浏览器会报错的问题
  • 修复底部组件渲染不正确的问题

# [v0.5.2] 2020.12.16

  • 修复注入不了db模块的BUG
  • 修复db.page方法会报错的BUG
  • 修复前端忽略版本更新时会再次提示的BUG
  • 修复保存接口时可能会报空指针的BUG
  • 修复tab页可能会重复的问题
  • 修复编辑器未携带RequestBody的问题
  • 优化MagicDynamicDataSource类的包路径
  • 优化历史记录,当无记录时提示
  • 优化编辑器样式,增强兼容性

# [v0.5.0] 2020.12.15

# 界面改动

  • 界面改用VUE重写
  • 新增支持多tab页、自动保存
  • 新增对顶部header的自定义配置API
  • 新增自定义皮肤配置的API
  • 新增请求钩子设置,主要用于支持自身应用对UI操作的鉴权
  • 新增支持接口搜素
  • 新增全局配置(用于模拟测试,全局header、全局参数等)
  • 新增语法错误提示
  • 接口列表改为树形结构

# 功能改动

  • 新增支持数据库自定义方言
  • 新增自定义配置列名转换、以及默认列名转换配置项
  • 新增数据库列名转换API(camelpascalupperlowernormal)
  • 新增单表操作API(insertupdate)
  • 新增SQL拦截器
  • 新增拦截器RequestInterceptor参数requestresponse
  • 新增内置跨域处理
  • 废弃DynamicDataSource 改用MagicDynamicDataSource
  • 优化代码,内部包结构调整

# 脚本改动

  • 新增?.语法,obj?.methodobj为空时直接返回null
  • 新增...自动展开语法
  • 新增支持[].xxx()的语法
  • 新增支持(expr).xxx()的语法
  • 新增正则类型 //gimuy
  • 新增Pattern扩展test用于校验文本是否符合正则
  • 新增exit 语句,exit 400,'参数填写有误'; 直接退出执行脚本,返回结果

# BUG修复

  • 修复未对脚本解除包装导致读取脚本错误的BUG
  • 修复分页缓存计算Key的BUG
  • 修复变量作用域污染的问题
  • 修复在请求时ContentTypeapplication/json等类型,RequestBody 为空时会报错的问题
  • 修复+=-=/=%=int值操作时未赋值的BUG

# 其它

# [v0.4.8] 2020.11.26

  • 修复monaco-editor引起的浏览器崩溃问题
  • 修复设置线程池大小无效的问题
  • 增强!一元运算符,支持非布尔值运算
  • 修复函数命名atPercent变更为asPercent

# [v0.4.7] 2020.11.23

  • 新增Map类型到JavaBean的自动隐式转换 #I251SS (opens new window)
  • 新增session.key = value的写法,用于向session中写值
  • 新增集合函数everysomereduceskiplimitfindNotNull
  • 新增Map函数sorteachasStringmergeasList
  • 新增Number函数 roundtoFixedfloorceilatPercent
  • 新增Date函数 format
  • 修复调用lambda时变量获取不正确的BUG #I2632N (opens new window)
  • 优化Map类型定义、保持书写顺序
  • 优化编辑器,可以折叠import、以及支持在单行太长时自动换行。
  • 优化编辑器高亮,支持SQL高亮
  • 优化Loading界面
  • 优化部分逻辑,支持JDK9+
  • 优化内部代码,DatabaseQuery 重命名为 SQLExecutor

# [v0.4.6] 2020.11.16

  • 新增函数asBean 用于将maplist转为Java对象 #I251SS (opens new window)
  • 新增语法++--+=-=*=/=%=连=
  • 新增env模块,用于读取配置
  • 新增.class属性访问
  • 修复async嵌套会产生阻塞的问题
  • 修复return语句在不返回任何值的空指针BUG
  • 修复在async中变量读取不正确的问题
  • 修复在切换变量作用域时二次赋值不正确的BUG #I252VY (opens new window)
  • 修复在magic-api.auto-import-package为空时 JS报错的问题
  • 优化生成SQL时产生的空白
  • 优化&&|| 运算,支持data && data.xxvar a = b || 1 的写法
  • 优化magic-script脚本变量读写性能
  • 优化代码提示、参数提示
  • 优化脚本异常提示

# [v0.4.5] 2020.11.09

  • 新增集合函数groupjoin
  • 新增聚合函数maxminavgsum
  • 新增参数提示、动态数据源提示
  • 新增magic-api.thread-pool-executor-size参数配置,用来设置async语句线程池大小
  • 修复恢复断点时丢失header的问题
  • 修复进入断点时,获取变量信息不正确的BUG
  • 优化magic-api.auto-import-package 配置,内置自动导入java.lang.*java.util.*
  • 优化async语句执行机制,改为在线程池中执行
  • 优化代码提示,增加中文提示
  • 优化查看历史记录详情 的SQL兼容性

# [v0.4.4] 2020.11.04

  • 新增while循环语句
  • 修复异常结果未被正常处理的BUG
  • 修复UI断点与折叠点击区域重叠的问题
  • 优化在请求接口打印异常日志时附带URL
  • 优化脚本错误信息增加行列号

# [v0.4.3] 2020.11.03

  • 修复进入断点时无法操作的BUG
  • 修复新建接口时默认请求参数缺失}的问题
  • 优化if语句和三元运算符 支持if(xxx) 的写法

# [v0.4.2] 2020.11.02

  • 新增脚本异步调用功能
  • 新增集合函数sortreservejoinshuffle
  • 新增代码折叠功能
  • 优化模拟测试,改为实际请求
  • 优化对BigDecimal类型的代码提示
  • 优化对枚举类型的代码提示
  • 优化对Spring Security框架的支持,自动适配解决ThreadLocal问题
  • 去除CookieSession模拟

# [v0.4.1] 2020.10.26

  • 新增支持ClickHouse数据库
  • 修复定义空字符串""时代码高亮不正确的BUG
  • 修复冲突问题,将DynamicDataSource更名为MagicDynamicDataSource
  • 修复未正确调用带有可变参数的重载方法的BUG
  • 修复向页面传递配置信息时传递用户名密码的安全问题
  • 优化模拟测试,在测试时将header参数放在http header中 #I1Z6RE (opens new window)
  • 优化登录,禁止使用ESC键或回车键关闭登录框

# [v0.4.0] 2020.09.14

# [v0.3.4] 2020.08.09

  • 新增支持将请求参数存入一个变量中
  • 新增支持接口自动刷新
  • 优化Map定义,可省略value
  • 优化import提示
  • 修复在测试时获取不到HttpServletRequest的问题

# [v0.3.3] 2020.08.02

  • 新增插入并返回主键
  • 新增15种类型判断方法
  • 新增动态增删改查数据源(用于应用运行时动态修改数据源)
  • response模块新增addHeader、setHeader、addCookie、addCookies等方法
  • 修复分组不能删除的BUG
  • 修复在保存时,注册接口与应用本身的接口冲突的问题
  • 修复第一次调用父类方法时,会报找不到方法的BUG
  • 优化UI编辑器保留当前编辑信息,当意外关闭时可恢复。
  • 优化DEBUG功能,支持单步调试、运行时修改断点
  • 优化代码提示
  • 优化分组名、分组前缀添加校验
  • 完善文档

# [v0.3.2] 2020.07.26

  • 新增支持配置默认导入模块
  • 新增支持BigDecimal类型
  • 修复分组前缀在以非"/"开头时的错误
  • 修复DEBUG时二进制结果输出不正确的问题
  • 修复重启后台后前端自动重试的BUG
  • 优化脚本报错时,自动跳转到错误行

# [v0.3.1] 2020.07.20

# 新增

  • Oracle建表语句

# BUG修复

  • 启动报ClassNotFoundException : springfox.documentation.swagger.web.SwaggerResourcesProvider的BUG
  • Swagger配置类循环引用的BUG
  • UI界面中编辑器里无法使用回车键的BUG

# [v0.3.0] 2020.07.19

# 新增

  • 历史记录查看、比对、还原
  • 支持Swagger2
  • 允许日志输出到页面上
  • 接口分组前缀
  • Response模块(可输出图片、下载文件、自定义JSON、构建分页)

# BUG修复

  • RequestBody参数测试时无效的问题

# 优化

  • 滚动条、图标兼容Firefox
  • 优化UI体验
  • 取消兼容null.方法、null.属性、null[key]、null[index]

# [v0.2.1] 2020.07.12

  • 更换UI
  • 新增事务相关函数
  • 新增接口使用数据源配置
  • 新增接口数据源接口(可自定义接口存储,可加密脚本信息)
  • 新增页面按钮权限接口
  • 新增each函数
  • 优化代码提示
  • 代码编辑器汉化
  • 修复脚本中不能给map类型赋值的问题
  • 修复finally块return null的BUG
  • 修复return new XXX();语句的BUG
  • 修复删除失败时,接口会被取消注册的BUG

# [v0.2.0] 2020.07.05

  • 抛弃XML方式,改用脚本,通过Web页面编写脚本
  • 新增脚本Debug能力
  • 新增代码提示
  • 新增错误提示
  • 新增Redis、MongoDB的支持
  • 新增API前缀以及WEB页面配置
  • 新增日志、断言模块
  • 新增自定义结果转换以及自定义类型扩展
  • 重构自定义拦截器
  • 重构SQL执行器
  • 修复默认SQL缓存线程安全问题

# [v0.1.1] 2020.05.17

  • 改名为magic-api,原名ssssssss
  • 新增支持缓存(默认实现LRU+TTL),可自定义
  • 修复多数据源时无法使用默认数据源的BUG
  • 修复分页查询时未释放数据库连接的BUG
  • 修复打成Jar后无法读取XML的问题
  • 优化缓存获取数据库方言
  • 取消验证dtd
  • 完善文档

# [v0.1.0] 2020.05.11

  • 修复post请求时报415错误的BUG
  • 新增多数据源支持
  • 新增插入返回主键
  • 新增自定义主键生成策略
  • 新增请求拦截器
  • 新增是否抛出异常配置
  • 优化dtd,改为xsd验证
  • 完善文档

# [v0.0.1] 2020.05.06

  • v0.0.1 正式发布
上次更新: 6/14/2021, 11:05:37 AM