Go to file
jun.gong 7a8a28276e doc:更新版本为 1.3.1 2020-07-23 14:24:02 +08:00
forest-core 升级版本到1.3.0 2020-07-16 19:33:07 +08:00
forest-spring fix: 修改类名拼写错误 2020-07-17 12:13:23 +08:00
site doc:更新版本为 1.3.1 2020-07-23 14:24:02 +08:00
spring-boot-starter-forest fix: 去掉commons-lang3的依赖 2020-07-16 19:57:58 +08:00
.gitignore 修改forest-core/src/test/java/org.forest路径名 2018-01-26 18:27:58 +08:00
.travis.yml ci: 改用openjdk 2020-07-09 17:32:07 +08:00
LICENSE new repository 2017-04-21 18:58:28 +08:00
README.md doc:更新版本为 1.3.1 2020-07-23 14:24:02 +08:00
pom.xml 升级版本到1.3.0 2020-07-16 19:33:07 +08:00

README.md

Forest - 轻量级HTTP客户端访问框架

license Maven Central

项目介绍:

Forest是一个高层的、极简的轻量级HTTP调用API框架。
相比于直接使用Httpclient您不再用写一大堆重复的代码了而是像调用本地方法一样去发送HTTP请求。

文档和示例:

项目特点:

  • 以Httpclient和OkHttp为后端框架
  • 通过调用本地方法的方式去发送Http请求, 实现了业务逻辑与Http协议之间的解耦
  • 相比Feign更轻量不依赖Spring Cloud和任何注册中心
  • 支持所有请求方法GET, HEAD, OPTIONS, TRACE, POST, DELETE, PUT, PATCH
  • 支持灵活的模板表达式
  • 支持过滤器来过滤传入的数据
  • 基于注解、配置化的方式定义Http请求
  • 支持Spring和Springboot集成
  • JSON字符串到Java对象的自动化解析
  • XML文本到Java对象的自动化解析
  • JSON、XML或其他类型转换器可以随意扩展和替换
  • 支持JSON转换框架: Fastjson, Jackson, Gson
  • 支持JAXB形式的XML转换
  • 可以通过OnSuccess和OnError接口参数实现请求结果的回调
  • 配置简单,一般只需要@Request一个注解就能完成绝大多数请求的定义
  • 支持异步请求调用

极速开始

以下例子基于Spring Boot

第一步添加Maven依赖

直接添加以下maven依赖即可

<dependency>
    <groupId>com.dtflys.forest</groupId>
    <artifactId>spring-boot-starter-forest</artifactId>
    <version>1.3.1</version>
</dependency>

第二步:创建一个interface

就以高德地图API为栗子吧


package com.yoursite.client;

import com.dtflys.forest.annotation.Request;
import com.dtflys.forest.annotation.DataParam;

public interface AmapClient {

    @Request(
        url = "http://ditu.amap.com/service/regeo?longitude=${0}&latitude=${1}",
        dataType = "json"
    )
    Map getLocation(String longitude, String latitude);
}

第三步:扫描接口

在Spring Boot的配置类或者启动类上加上@ForestScan注解,并在basePackages属性里填上远程接口的所在的包名

@SpringBootApplication
@Configuration
@ForestScan(basePackages = "com.yoursite.client")
public class MyApplication {
  public static void main(String[] args) {
      SpringApplication.run(MyApplication.class, args);
   }
}

第四步:调用接口

OK我们可以愉快地调用接口了

// 注入接口实例
@Autowired
private AmapClient amapClient;
...
// 调用接口
Map result = amapClient.getLocation("121.475078", "31.223577");
System.out.println(result);

详细文档请看:dt_flys.gitee.io/forest

微信交流群:

avatar

项目协议

The MIT License (MIT)

Copyright (c) 2016 Jun Gong