推荐一款不错的国内开源JavaHttp客户端框架-Forest

今天推荐一个不错的国内开源JavaHttp客户端框架,如果文章对您有帮助记得点赞、收藏、加关注哦!!!话不多说上内容。

前言

做为一个Java后端开发程序员,相信大家在项目中都经常会遇到作为Http客户端调用第三方接口的场景。大部分的人首选的都是基于apache的HttpClient和OkHttp来进行开发,每个人都会去封装一套用来请求不同请求方式接口的代码工具类,使得项目中的接口调用方式五花八门,技术不统一,有些同事可能连请求日志都没有进行输出,出现问题很难排查。尤其在生产服务器上部署时,又无法像在本地开发环境一样能够打断点调试。

Forest的出现能够完美的解决以上的这些问题,而且Forest提供了两种实现http客户端的方式分别为声明式和编程式接口,并且对日志统一进行了处理,极大的提高了线上问题排查的能力,且日志支持可配置,可以通过配置控制是否输出日志。好了以上说了这么多下面一起看下Forest怎么使用,具体能为我们解决什么样的问题:


官方文档地址:https://forest.dtflyx.com/

github地址:https://github.com/dromara/forest

gitee地址:https://gitee.com/dromara/forest


最新版本

官方最新版目前是支持到了v1.5.30


版本

该项目在gitee中标星2.9k

在github中标星1.3k



所需环境

JDK版本: 8+

可集成的 spring boot 版本: 1.x, 2.x

也可不依赖 spring boot 和 spring

Forest优点:

  1. 配置简单上手快,官方提供了丰富的文档,支持在springboot、Solon、原生java环境下的快速使用。
  2. 简单优雅,将复杂的Http请求细节封装成Java+注解,不用再关注请求发送的具体过程。
  3. 拓展灵活,支持自定义注解和自定义拦截器,以应对意想不到的场景。

Forest的特性

名字由来

Forest就字面意思而言,就是森林的意思。但仔细看可以拆成For和Rest两个单词,也就是“为了Rest”(Rest为一种基于HTTP的架构风格)。 而合起来就是森林,森林由很多树木花草组成(可以理解为各种不同的服务),它们表面上看独立,实则在地下根茎交错纵横、相互连接依存,这样看就有点现代分布式服务化的味道了。 最后,这两个单词反过来读就像是Resultful。

举个栗子

由于官方文档已经描述的很详细了,这里就不做过多的赘述了。

在 Forest 中,所有的 HTTP 请求信息都要绑定到某一个接口的方法上,不需要编写具体的代码去发送请求。请求发送方通过调用事先定义好 HTTP 请求信息的接口方法,自动去执行 HTTP 发送请求的过程,其具体发送请求信息就是该方法对应绑定的 HTTP 请求信息。

声明式接口简单请求

Forest支持JSON、XML、普通文本等数据转换形式。不需要接口调用者自己写具体的数据转换代码


重试机制通过配置设置接口请求的最大重试次数和重试时间间隔,默认为0次。最大时间间隔单位为毫秒,默认为 0 毫秒。

重试机制

Gzip是现在一种流行的文件压缩算法,有相当广泛的应用范围。尤其是当Gzip用来压缩存文本文件的时候效果尤为明显,大概能减少70%以上的文件大小(具体多少取决于文件中的内容)。

现有的很多HTTP服务器系统都支持Gzip,如Apache、PHP等,经过这些服务压缩过的数据可以降低网络传输的流量,提高客户端的响应速度。


Forest在发送请求时和接受响应数据时都会自动打印出HTTP请求相关的日志,其中包括:请求日志、响应状态日志、响应内容日志


在Forest中的回调函数使用单方法的接口定义,这样可以使您在 Java 8 或 Kotlin 语言中方便使用 Lambda 表达式。

这里就介绍这么多,有需要的小伙伴请前往官网查看文档。

感谢开源作者的贡献,谢谢大家的阅读。后续为大家介绍其他优秀的开源项目。

展开阅读全文

页面更新:2024-05-29

标签:客户端   注解   框架   接口   森林   文档   方法   官方   国内   数据   日志   信息

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top