SpringBoot官网例子(3)——Consuming a RESTful Web Service(消费一个RESTful的web服务)

1、准备工作

原文:https://spring.io/guides/gs/consuming-rest/

  • >=1.8的JDK
  • Eclipse(其它任何合适的IDE)
  • Maven3.2(官网也有Gradle的构建

2、 POM文件

仍然是一个子模块,父工程的pom https://blog.csdn.net/csdn86868686888/article/details/103758256

<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.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>

3、工程

工程结构:

代码

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public class Value {

	    private Long id;
	    private String quote;

	    public Value() {
	    }

	    //省略了get和set方法

	    @Override
	    public String toString() {
	        return "Value{" +
	                "id=" + id +
	                ", quote='" + quote + '\'' +
	                '}';
	    }
}
package com.springboot.entity;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public class Quote {
	 private String type;
	    private Value value;

	    public Quote() {
	    }

	    //省略了get和set方法
	    @Override
	    public String toString() {
	        return "Quote{" +
	                "type='" + type + '\'' +
	                ", value=" + value +
	                '}';
	    }
}
package com.springboot;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

import com.springboot.entity.Quote;

@SpringBootApplication
public class Application {
	
	private static final Logger log = LoggerFactory.getLogger(Application.class);
	
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
	
	@Bean
	public RestTemplate restTemplate(RestTemplateBuilder builder) {
		return builder.build();	}
	
	@Bean
	public CommandLineRunner run(RestTemplate restTemplate) {
		return args->{
			Quote quote=restTemplate.getForObject("https://gturnquist-quoters.cfapps.io/api/random", Quote.class);
			log.info(quote.toString());
		};
	}
}

4、总结

执行结果是这样的:

有一个服务,它的调用接口是https://gturnquist-quoters.cfapps.io/api/random

每一次调用,它会返回如下的数据格式:

{
   type: "success",
   value: {
      id: 10,
      quote: "Really loving Spring Boot, makes stand alone Spring apps easy."
   }
}
  • @JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段。
  • RestTemplate,使用Jackson JSON来处理传入的数据,将其转化为一个类。
  • CommandLineRunner,启动时运行restTemplate

代码戳https://github.co/github20131983/springboot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值