转载

Hasor 4.1.10 发布,满满干货:动态数据源、报错定位到行列、权限控制

Dataway介绍

Hasor 4.1.10 发布,满满干货:动态数据源、报错定位到行列、权限控制

Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具。使得使用者无需开发任何代码就配置一个满足需求的接口。 整个接口配置、测试、冒烟、发布。一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar 包方式提供并集成到应用中并和应用共享同一个 http 端口,应用无需单独为 Dataway 开辟新的管理端口。

这种内嵌集成方式模式的优点是,可以使得大部分老项目都可以在无侵入的情况下直接应用 Dataway。进而改进老项目的迭代效率,大大减少企业项目研发成本。

Dataway 工具化的提供 DataQL 配置能力。这种研发模式的变革使得,相当多的需求开发场景只需要配置即可完成交付。 从而避免了从数据存取到前端接口之间的一系列开发任务,例如:Mapper、BO、VO、DO、DAO、Service、Controller 统统不在需要。

版本说明:

4.1.9 作为实验版本先行2周左右发布,4.1.10 则主要是 4.1.9 的问题修复版本。

Hasor v4.1.10 (2020-07-6)

新增

  • issue 增加 LookupDataSourceListener 扩展接口,允许每次执行 DataQL 的 SQL 片段时都动态的查找 DataSource 以实现动态数据源。

  • issue CollectionUdfSource 函数库需要一个 size 函数

  • collect 函数库新增 size、newMap、groupBy 三个函数。

优化

  • 函数库调整:已有 hex 函数库合入 convert 函数库;已有 compare 函数库合入 string 函数库;已有 hmac 函数库合入 codec 函数库;

  • 多个 Notify SPI 下,必须要有仲裁。

  • AppContext 接口的 joinSignal 方法废弃。增加一个 waitSignal 方法(可以利用对象锁的形式进行等待)

  • issue 优化 DomainHelper 增加对 UUID 类型的默认支持,将其转换为 String

修复

  • issue 修复:带有 content-path 的工程生成的 Swagger 文档中 BaseURL少了一级路径

  • issue 修复:ResultStructure 取消勾选之后,在刷新又显示被勾选了

  • issue 修复:4.1.9版本获取header参数Bug

  • issue 修复:自定义序列化返回,首页未展示结果,编辑页能展示结果并下载

Hasor v4.1.9 (2020-06-29)

新增

  • issue Api列表时显式其http method

  • issue Dataway string 库函数新增 split 方法。

  • issue UI 的操作提供权限控制扩展能力

  • 新版本检查提示功能,例如:官方在发布新版本的时。Interface-UI 会检测是否有新版本并弹窗提示给使用者,使用者可以选择永久忽略这次版本提示。

  • SPI 增加可以判断 hasSpi、hasJudge 方法用来判断 SPI 是否有被注册。

  • issue 异常信息增加了行号。

  • issue 新增一个开源,Parameters中结构化的参数可以包装为一个整体。

  • hasor-web 项目新增 HttpParameters 工具类。可以静态方法形式获取各类请求参数。

优化

  • 所有编辑器统一使用 MonacoEditor,去掉 Codemirror 依赖。

  • ApiInfo 类型中增加 CallSource 枚举,用来表示请求的来源。isPerform 方法成为过期方法。

  • ValueModel 的isByte、isShort、isInt、isLong 等等方法。逻辑调整为是否可以转换为该类型。

  • 去掉了 DataQL 的环境隔离能力。

  • FxWebInterceptor 对于 header、cookie 的获取通过 HttpParameters 类来获取。

  • issue 整合Swagger 之后 Header 无法通过 Swagger 传入。

修复

  • issue 修复Dataway 生成的 Swagger api文档,在容器中用 swagger 访问失败。

  • issue 修复 字符串加法计算特定场景下抛异常。

  • issue 修复 @@mybatis 多线程并发问题 MybatisFragment

  • issue 跨域下 4.1.7、4.1.8 前端请求第一次是options时会报错。

报错定位:

举个例子,在 4.1.9 版本之前如果遇到报错。例如 target is null. 通常是不知道问题出现在具体什么地方的,在 4.1.9 版本之后。报错可以直接定位到具体的行列。例如下面这个 case abc 函数并不存在。报错会指明  问题发生在 第2行 第7个字符到第12个字符之间。

Hasor 4.1.10 发布,满满干货:动态数据源、报错定位到行列、权限控制

显示出接口的请求方法:

Hasor 4.1.10 发布,满满干货:动态数据源、报错定位到行列、权限控制

动态数据源能力:

基于新的 SPI  LookupDataSourceListener,应用可以自己管理一个 DataSource 池和DataSource 状态。当通过 Hint

<em>FRAGMENT_SQL_DATA_SOURCE</em>

来指定数据源的时候,DataQL 会通过 LookupDataSourceListener 来进行查找。这样应用就可以完全自主管理数据源。

权限控制能力:

AuthorizationChainSpi,无论是界面权限还是 接口被调用的权限都可以一收眼底。

// 配置所有接口,都是只读权限
final Set<String> codeSet = AuthorizationType.Group_ReadOnly.toCodeSet();
apiBinder.bindSpiListener(AuthorizationChainSpi.class, (checkType, apiInfo, defaultCheck) -> {
    return checkType.testAuthorization(codeSet);
});

相关文章

《 绝了!Dataway让Spring Boot不再需要Controller、Service、DAO、Mapper 》https://my.oschina.net/ta8210/blog/3234639

《 Dataway 配置数据接口时和前端进行参数对接 》 https://my.oschina.net/ta8210/blog/3236659

《 通过 Dataway 配置一个带有分页查询的接口 》https://my.oschina.net/ta8210/blog/3277320

《 Dataway 4.1.5 以上版本升级指南 》https://my.oschina.net/ta8210/blog/4275154

《 完美兼容老项目!Dataway 4.1.6 返回结构的全面控制 》https://my.oschina.net/ta8210/blog/4275216

《 无需代码!通过 Dataway 配置一个带有分页查询的接口 》https://my.oschina.net/ta8210/blog/3277320

《 Dataway 整合 Swagger2,让 API 管理更顺畅 》https://my.oschina.net/ta8210/blog/4293622

官方连接

- Dataway 官方手册: https://www.hasor.net/web/dataway/about.html

- Dataway 在 OSC 上的项目地址,欢迎收藏: https://www.oschina.net/p/dataway

- DataQL 手册地址: https://www.hasor.net/web/dataql/what_is_dataql.html

- Hasor 项目的首页: https://www.hasor.net/web/index.html

原文  https://www.oschina.net/news/116968/dataway-4-1-10-released
正文到此结束
Loading...