id | title | sidebar_label |
---|---|---|
usage | 快速上手 | 快速上手 |
在 Forest 依赖加入好之后,就可以构建 HTTP 请求的接口了。
在 Forest 中,所有的 HTTP 请求信息都要绑定到某一个接口的方法上,不需要编写具体的代码去发送请求。请求发送方通过调用事先定义好 HTTP 请求信息的接口方法,自动去执行 HTTP 发送请求的过程,其具体发送请求信息就是该方法对应绑定的 HTTP 请求信息。
Hello World
创建一个interface
,比如命名为MyClient
,并创建一个接口方法名为helloForest
,用@Request
注解修饰之。
public interface MyClient {
@Request(url = "http://localhost:8080/hello")
String helloForest();
}
通过@Request
注解,将上面的MyClient
接口中的helloForest()
方法绑定了一个 HTTP 请求, 其 URL 为http://localhost:8080/hello
,并默认使用GET
方式,且将请求响应的数据以String
的方式返回给调用者。
发送请求
若您已有定义好的 Forest 请求接口(比如名为 com.yoursite.client.MyClient
),那就可以开始愉快使用它了。
在 Spring Boot 项目中调用接口
只要在Spring Boot
的配置类或者启动类上加上@ForestScan
注解,并在basePackages
属性里填上远程接口的所在的包名
@SpringBootApplication
@Configuration
@ForestScan(basePackages = "com.yoursite.client")
public class MyApp {
...
}
Forest 会扫描@ForestScan
注解中basePackages
属性指定的包下面所有的接口,然后会将符合条件的接口进行动态代理并注入到 Spring 的上下文中。
然后便能在其他代码中从 Spring 上下文注入接口实例,然后如调用普通接口那样调用即可。
@Component
public class MyService {
@Autowired
private MyClient myClient;
public void testClient() {
String result = myClient.helloForest();
System.out.println(result);
}
}
在 Spring 项目中调用接口
:::info 友情提示 如果您的项目是基于 spring boot 的,或者非spring的普通项目,可以直接跳过这段内容。 :::
在 Spring 上下文配置文件中进行配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:forest="http://forest.dtflyx.com/schema/forest"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://forest.dtflyx.com/schema/forest
http://forest.dtflyx.com/schema/forest/forest-spring.xsd">
<!-- Forest全局配置 -->
<forest:configuration
id="forestConfiguration"
timeout="30000"
connectTimeout="10000"
maxConnections="500"
maxRouteConnections="500">
</forest:configuration>
<!-- 扫描 base-package 属性定义包,然后会将该包名下符合条件的接口进行动态代理并注入到 Spring 的上下文中 -->
<forest:scan configuration="forestConfiguration" base-package="com.yoursite.client"/>
</beans>
然后便能在其他代码中从 Spring 上下文注入接口实例,然后如调用普通接口那样调用即可。
:::tip 文档导航 关于如何进行Spring项目配置的详细信息请参见 《Spring 项目配置》 :::
@Component
public class MyService {
@Autowired
private MyClient myClient;
public void testClient() {
String result = myClient.helloForest();
System.out.println(result);
}
}
在普通项目中调用接口
:::info 友情提示 如果您的项目是基于 Spring Boot 的,或者传统 Sping 的,可以跳过这段,看前两节内容。 :::
通过ForestConfiguration
的方法createInstance(Class clazz)
实例化接口,然后如调用普通接口那样调用即可。
// 实例化Forest配置对象
ForestConfiguration configuration = ForestConfiguration.configuration();
// 通过Forest配置对象实例化Forest请求接口
MyClient myClient = configuration.createInstance(MyClient.class);
...
// 调用Forest请求接口,并获取响应返回结果
String result = myClient.simpleRequest();
System.out.println(result);
:::tip 文档导航 关于如何进行非Spring普通项目配置请参见 《普通项目配置》 :::