build: 添加 Maven 项目配置并忽略 IDE 目录。

集成聚合数据的 每日天气、每日一句功能
This commit is contained in:
promise_cyf
2026-10-09 15:58:45 +08:00
parent c24677ab0a
commit 9c04f81f2d
17 changed files with 873 additions and 0 deletions
@@ -0,0 +1,80 @@
package com.cyf.devToolBox.controller;
import com.cyf.devToolBox.juhe.soup.JuheSoupClient;
import com.cyf.devToolBox.juhe.soup.model.JuheSoupResponse;
import com.cyf.devToolBox.juhe.weather.JuheWeatherClient;
import com.cyf.devToolBox.juhe.weather.model.JuheWeatherResponse;
import com.cyf.devToolBox.common.Result;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 聚合数据接口,统一返回 {@link Result} 结构。
*
* <pre>
* GET /api/juhe/weather?city=丰台 查询实时天气(未来天数取配置默认值)
* GET /api/juhe/weather?city=北京&futureNum=3 指定未来天气天数
* GET /api/juhe/weather/raw?city=北京 返回原始 JSON,便于排查
* GET /api/juhe/soup 查询每日一句
* GET /api/juhe/soup/raw 返回原始 JSON,便于排查
* </pre>
*
* @author cyf
*/
@RestController
@RequestMapping("/api/juhe")
public class JuheController {
private final JuheWeatherClient juheWeatherClient;
private final JuheSoupClient juheSoupClient;
public JuheController(JuheWeatherClient juheWeatherClient, JuheSoupClient juheSoupClient) {
this.juheWeatherClient = juheWeatherClient;
this.juheSoupClient = juheSoupClient;
}
/**
* 查询指定城市的天气。
*
* @param city 城市名称(中文),如:北京、丰台
* @param futureNum 未来天气天数(1~7),不传则使用配置中的默认值
* @return 统一返回结构,data 为天气数据
*/
@GetMapping("/weather")
public Result<JuheWeatherResponse.Result> weather(@RequestParam String city,
@RequestParam(required = false) Integer futureNum) {
JuheWeatherResponse.Result data = futureNum == null
? juheWeatherClient.query(city)
: juheWeatherClient.query(city, futureNum);
return Result.success(data);
}
/**
* 天气接口原始 JSON,便于排查问题。
*/
@GetMapping("/weather/raw")
public Result<String> weatherRaw(@RequestParam String city,
@RequestParam(required = false) Integer futureNum) {
return Result.success(juheWeatherClient.queryRaw(city, futureNum));
}
/**
* 查询每日一句。
*
* @return 统一返回结构,data 为每日一句数据
*/
@GetMapping("/soup")
public Result<JuheSoupResponse.Result> soup() {
return Result.success(juheSoupClient.query());
}
/**
* 每日一句接口原始 JSON,便于排查问题。
*/
@GetMapping("/soup/raw")
public Result<String> soupRaw() {
return Result.success(juheSoupClient.queryRaw());
}
}