天气数据API 微服务的实现
天气数据API微服务包含了天气数据查询组件。天气数据查询组件提供了天气数据查询的接口。
我们的数据已经通过天气数据采集微服务集成到了Redis 存储中,天气数据API微服务只需要从Redis获取数据,而后从接口中暴露出去即可。
在micro-weather-report应用的基础上,我们将对其进行逐步的拆分,形成一个新的微服务msa-weather-data-server应用。
所需环境
为了演示本例子,需要采用如下开发环境。
- JDK 8。
- Gradle 4.0。
- Spring Boot Web Starter 2.0.0.M4。
- Spring Boot Data Redis Starter 2.0.0.M4。
- Redis 3.2.100。
修改天气数据服务接口及实现
在com.waylau.spring.cloud. weather.service包下,我们之前已经定义了该应用的天气数据服务接口WeatherDataService。
public interface WeatherDataService {
*★
*根据城市ID查询天气数据
@param cityId
@return
WeatherResponse getDataByCityId(String cityId);
/**
★根据城市名称查询天气数据
* @param cityId
* Creturn
*/
Wea therResponse getDataByCityName (String cityName) ;
}
对于该微服务而言,我们并不需要同步天气的业务需求,所以把之前定义的syncDataByCityId方法删除了。
WeatherDataServicelmpl是对WeatherDataService 接口的实现,也要做出相应的调整,将同步天气的代码逻辑都删除,保留以下代码。
package com. way1au . spr ing.cloud.weather .service;
import java. io. IOException;
import org.slf4j . Logger;
import org.slf4j. LoggerFactory;
import org.springf ramework. beans. factory . annotation.Autowired;
import org. springfr amework. data. redis. core. StringRedisTemplate;
import or