更轻量、更简单实用的HTTP客户端框架
容易上手
不需要调用HTTP底层接口,而是像 Dubbo 那样的 RPC 框架一样,只需要定义接口、调用接口即可。10分钟即可完成请求的定义、发送、接收响应、数据解析、错误处理、日志打印等过程。
配置轻量
遵循约定优于配置的原则,只需在需要的时候进行配置,不配置也不会影响Forest请求的正常调用。这样做使得框能够快速上手、使用简单,而又不失灵活。
简单优雅
将繁复的 HTTP 请求细节封装成 Java 接口 + 注解的形式,不必再关心发送 HTTP 请求的具体过程。使得 HTTP 请求信息与业务代码解耦,方便您优雅地管理大量 HTTP 的 URL、Header、Body 等信息。
扩展灵活
允许您自定义拦截器、甚至是自定义注解,以此来扩展Forest的能力,即使面对意想不到的场景,也能将您特定的逻辑封装成一个设计精巧的注解以供您和他人方便使用。
Forest的架构
Forest架构大致可以分为两部分:前端和后端
前端部分
- 通过RPC方式去发送HTTP请求, 方便解耦
- 支持GET, HEAD, POST等所有请求方法
- 支持Spring和Springboot集成
- JSON字符串到Java对象的自动化解析
- XML文本到Java对象的自动化解析
- 支持灵活的模板表达式
- 支持拦截器处理请求的各个生命周期
- 支持自定义注解
后端部分
- 支持OkHttp3
- 支持Httpclient
数据转换
Forest支持多种数据类型和Java对象互相转换
内置数据转换器
- JSON转换器
- XML转换器
- 本文转换器
- 二进制转换器
- 自动探测转换类型
- 自定义数据转换器
Forest数据转换特点
- 能自动对请求响应返回的数据进行反序列化
- 能自动对要发送到HTTP请求的数据进行序列化
- 无需明确定义数据类型,能自动探测选择合适的转换器
- 若有特殊的数据类型,内置转换器无法满足,还允许自定义转换器
丰富的注解
Forest所有的请求定义都基于Java注解的声明方式
使用注解的好处
- 声明式编程,无多余代码
- 代码优雅,简洁易看懂
- 容易上手,学习成本低
- 方便HTTP接口的维护与管理
- 能形成统一HTTP接口形式,方便开发者之间交流
Forest注解的特点
- 注解丰富,涵盖了HTTP请求的绝大部分功能
- 扩展能力强大,可以自定义注解