使用 Rest Template 访问服务API

本文将演示 Rest Template 的简单用法,本文参考了 Spring 的官方案例。

新建 Spring Boot 项目

在 IDEA 中新建一个 maven 项目,然后编辑 pom.xml 文件,加入一下依赖和构建信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<properties>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

新建数据类

在 src/main/java 新建一个名为:cn.com.hohistar.sboot.model 的包,然后新建名为: Value 的类,填入以下代码:

1
2
3
4
5
6
7
@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class Value {

private Long id;
private String quote;
}

再建一个名为: Quote 的类,填入以下代码:

1
2
3
4
5
6
7
@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class Quote {

private String type;
private Value value;
}

新建启动类

在 cn.com.hohistar.sboot 包中新建一个名为: QuoteApplication 的类,添入以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@SpringBootApplication
public class QuoteApplication {

private static final Logger log = LoggerFactory.getLogger(QuoteApplication.class);

private static final String GET_QUOTE_URL = "https://gturnquist-quoters.cfapps.io/api/random";

public static void main(String[] args) {
SpringApplication.run(QuoteApplication.class, args);
}

@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder.build();
}

@Bean
public CommandLineRunner run(RestTemplate restTemplate) throws Exception {
return args -> {
Quote quote = restTemplate.getForObject(
GET_QUOTE_URL, Quote.class);
log.info(quote.toString());
};
}
}

可以看到,代码中使用 RestTemplateBuilder 作为构造器来构造了 RestTemplate 的实例,然后使用 getForObject 方法来访问服务API,并直接将访问结果转换为 Quote 类。

本文标题:使用 Rest Template 访问服务API

文章作者:Morning Star

发布时间:2019年11月27日 - 18:11

最后更新:2021年04月16日 - 15:04

原始链接:https://www.mls-tech.info/java/springboot-rest-template/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。