Forest v1.5.30 发布,适配 SpringBoot3 和 Solon,新增延迟参数

Forest介绍

Forest 是一个开源的 Java HTTP 客户端框架,它能够将 HTTP 的所有请求信息(包括 URL、Header 以及 Body 等信息)绑定到您自定义的 Interface 方法上,能够通过调用本地接口方法的方式发送 HTTP 请求

获得奖项

  • 2021 年度 OSC 中国开源项目评选「最受欢迎项目」

  • 2022 年度 OSC 中国开源项目评选「最火热中国开源项目社区」

简单的栗子

  • 声明式接口

创建一个 interface,并用@Get注解修饰接口方法。

public interface MyClient {
    @Get("http://localhost:8080/hello")
    String hello();
}

通过@Get注解,将上面的 MyClient 接口中的simpleRequest()方法绑定了一个 HTTP 请求, 其 URL 为http://localhost:8080/hello,并默认使用 GET 方式,且将请求响应的数据以 String 的方式返回给调用者

  • 编程式接口

Forest.get("http://localhost:8080/hello").execute();

编程式接口则更为简单直接

新增特性

  • 支持和适配了 SpringBoot3

  • 支持和适配了 Solon 框架

  • 支持延迟参数特性

延迟参数 (Lambda参数)

有很多情况,Header、Query、Body的参数值不能马上得出,而是在请求发送前的那一刻(所有请求参数都到位时)才能得出,典型的例子就是加签验证的场景(在Header中添加一个参数token,而token的值是对整个body做加密的结果)

  • 请求头的延迟参数

Forest.post("/test")
        .addHeader("Content-Type""application/json; charset=UTF-8")          // 普通请求头
        .addHeader("Authorization", req -> Base64.encode(req.body().encode())) // 延迟请求头
        .addBody("id""1972664191")      // 请求体参数 id
        .addBody("name""XieYu20011008"// 请求体参数 name
        .execute();
  • 请求体的延迟参数

Forest.post("/test")
        .addHeader("Content-Type""application/json; charset=UTF-8")  // 请求头
        .addHeader("_id""20011008")                                  // 请求头
        .addBody("id""1972664191")                                   // 请求体参数 id
        .addBody("name", req -> "Foo" + req.headerValue("_id"))        // 延迟请求体参数 name
        .addBody("token", req -> Base64.encode(req.body().encode()))   // 延迟请求体参数 token
        .execute();                                                    // 执行请求

官网和仓库地址

官网地址:

http://forest.dtflyx.com

Gitee 仓库地址:

https://gitee.com/dromara/forest

Github 仓库地址:

https://github.com/dromara/forest

本次更新内容

  • feat: 适配 springboot3

  • feat: 适配 solon

  • feat: 延迟参数 (Lambda参数),支持 Query, Header,Body 三种参数的延迟求值

  • feat: 可自定义异步请求池拒绝策略

  • feat: 请求体序列化接口,ForestRequest.body().encode() 和 ForestRequest.body().encodeToString()

  • fix: ForestProxy添加header没有效果

  • fix: onBodyEncode 生命周期顺序问题

  • fix: 不同 ForestConfiguration 对象共用同一个异步线程池的问题

  • fix: 无法解析 localhost:8080 这类省略 http:// 的 url

  • reflector: 将xml解析模块拆分成了 forest-jaxb 和 forest-jakarta-xml 两个子模块,需要的情况要分别自行引入

  • reflector: request body encoder

  • refactor: Forest Body clone

  • refactor: 构建 Query String 部分

  • add: HTTPRoxy 注解的 headers 属性

  • add: forest 示例工程

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/233715/forest-1-5-30-released

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。