全国城市空气质量查询:旅游 / 健康类应用的落地方案
# 全国城市空气质量查询:旅游 / 健康类应用的落地方案
> 接口/接入点:全国城市空气质量查询(apiCode=104)· 104-41/104-42 · 免费 · 返回 JSON · 适用人群:旅游/健康类产品开发者 · 阅读时间:约 7 分钟
## 核心要点
- 旅游场景:出行前查目的地空气,敏感人群(老人/儿童/呼吸道患者)据此调整行程或备药。
- 健康场景:结合 `quality` 等级做提醒话术,轻度污染及以上触发「减少户外/戴口罩」建议。
- 多城对比:用 104-41 排行榜做「周边/候选城市空气对比」,辅助目的地决策。
## Why:旅游与健康为什么需要空气数据
用户规划一次出行,不只看天气,也看「到了那里呼吸顺不顺」。对鼻炎、哮喘、慢阻肺人群,空气质量甚至比温度更重要。把空气数据嵌入行程卡片、健康提醒,是这类产品的差异化加分项。
## What:接口速览
| 项 | 内容 |
|----|------|
| 单城查询 104-42 | 按 `area` 返回单条(含 aqi/pm2_5/quality/primary_pollutant) |
| 排行榜 104-41 | `list` 全国主要城市排名,可做多城对比 |
| 等级字段 | `quality`(6 类),健康提醒的触发开关 |
## How:目的地空气 + 健康提醒
```python
import requests
def travel_advice(city: str, appkey: str) -> dict:
b = requests.post(
"https://route.showapi.com/104-42",
params={"appKey": appkey}, data={"area": city}, timeout=10,
).json()["showapi_res_body"]
q = b["quality"]
# 仅作参考,敏感人群请以官方发布为准
tips = {
"优质": "空气清新,适合户外活动",
"良好": "空气尚可,正常活动无碍",
"轻度污染": "敏感人群减少长时间户外",
"中度污染": "建议减少户外,外出戴口罩",
"重度污染": "尽量避免外出,关闭门窗",
"严重污染": "留守室内,开启净化设备",
}
return {"city": b["area"], "quality": q,
"aqi": int(b["aqi"]), "tip": tips.get(q, "")}
def compare_cities(cities: list, appkey: str) -> list:
out = []
for c in cities:
b = requests.post("https://route.showapi.com/104-42",
params={"appKey": appkey}, data={"area": c}, timeout=10
).json()["showapi_res_body"]
out.append({"city": b["area"], "aqi": int(b["aqi"]), "quality": b["quality"]})
return sorted(out, key=lambda x: x["aqi"]) # 空气好(AQI 小)的排前面
```
### cURL 速测
```bash
curl -X POST "https://route.showapi.com/104-42?appKey=YOUR_APPKEY" \
-H "content-type: application/x-www-form-urlencoded" -d "area=%E4%B8%BD%E6%B1%9F"
```
## 返回示例与解析
查「丽江」实测 `quality=优质`、`aqi=11`;「成都」`quality=良好`、`aqi=52`。多城对比时按 `aqi` 升序,「丽江」更适合呼吸道敏感人群。注意 `primary_pollutant` 在优/良时为空,提醒话术里不要硬塞污染物名称。
## 进阶 / 边界
- **健康建议仅作参考**:接口给等级文字,健康决策请以官方发布为准,避免过度承诺「安全/危险」。
- **小地区回退**:输入具体景区/县城会回退到上级城市,对比时注意展示「实际参考城市」。
- **多城调用成本**:逐城查询会多次计额度,建议对固定候选集做服务端缓存(见系列第 7 篇)。
- **等级文字一致性**:线上为「优质」,UI 文案保持一致。
## FAQ
**Q1:能直接告诉用户「今天能不能去跑步」吗?**
可用 `quality` 等级给建议,但属参考性质;敏感人群请以官方健康指引为准。
**Q2:多城对比要调很多次接口?**
是的,每城一次;建议候选集固定后服务端缓存,避免重复消耗额度。
**Q3:景区/县城查不到怎么办?**
接口回退到上级主要城市,展示时注明「参考上级城市 X 的空气质量」。
**Q4:首要污染物为空时要怎么写提醒?**
优/良时为空属正常,提醒中不要出现「首要污染物:无」这类表述。
## 相关能力 / 下一步阅读
- [全国城市空气质量查询:空气质量等级(优质/良好/污染)判定与配色指南](https://www.showapi.com/guides/air-quality-quality-levels-104)
- [全国城市空气质量查询:单城市实时查询集成指南(从请求到 UI 展示)](https://www.showapi.com/guides/air-quality-query-integration-104)
- [全国城市空气质量查询:环境监测与智能设备的低成本集成](https://www.showapi.com/guides/air-quality-iot-monitor-104)
- **本系列共 11 篇**:查看[全国城市空气质量查询 · 指南总目录](https://www.showapi.com/guides/air-quality-guides-104)