springboot利用FeignClient调用天气预报接口代码
时间: 2023-10-19 13:13:46 浏览: 112
以下是使用Spring Boot和FeignClient调用天气预报接口的示例代码:
首先,在pom.xml文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
```
然后,在应用程序主类上添加@EnableFeignClients注解,启用FeignClient:
```java
@SpringBootApplication
@EnableFeignClients
public class WeatherApplication {
public static void main(String[] args) {
SpringApplication.run(WeatherApplication.class, args);
}
}
```
接下来,创建一个FeignClient接口来定义调用天气预报API的方法:
```java
@FeignClient(name = "weather-api", url = "https://api.weather.com")
public interface WeatherApiClient {
@GetMapping("/forecast")
ResponseEntity<String> getForecast(@RequestParam("city") String city, @RequestParam("apiKey") String apiKey);
}
```
在这个接口上,使用了FeignClient注解来指定要调用的API的名称和URL。然后,定义了一个getForecast方法,它使用@GetMapping注解来指定调用API的HTTP方法和路径,并使用@RequestParam注解来指定必需的查询参数。这个方法返回一个ResponseEntity<String>,其中包含API响应的主体。
最后,在需要调用天气预报API的代码中,注入WeatherApiClient接口,并调用getForecast方法:
```java
@RestController
public class WeatherController {
@Autowired
private WeatherApiClient weatherApiClient;
@GetMapping("/weather")
public ResponseEntity<String> getWeather(@RequestParam("city") String city, @RequestParam("apiKey") String apiKey) {
return weatherApiClient.getForecast(city, apiKey);
}
}
```
在这个控制器中,注入了WeatherApiClient接口,并在getWeather方法中调用了getForecast方法来获取天气预报数据。这个方法返回了一个ResponseEntity<String>,它包含了API响应的主体。
阅读全文