一、接口整体架构
一套完整的轻量化天气服务,并非单一接口返回所有数据,它拆分出四个核心子接口,各有用途:
-
根据城市查询天气:核心气象数据(温度、湿度、AQI、天气、风向等)
-
根据城市查询生活指数:衍生气象服务数据(穿衣、洗车、运动、紫外线等生活建议)
-
天气种类列表:天气编码映射表,用于前端图标渲染、数据统一标准化
-
支持城市列表:城市数据源校验,提前规避无效城市查询报错
这种拆分方式可缓存天气种类 和城市列表,减少重复请求,提升项目响应速度与稳定性。
二、四大子接口技术详解
所有接口统一支持 GET/POST 请求,返回标准 JSON 格式,通用必填参数为 key(开发者身份密钥),适配前后端各类开发场景。
1. 根据城市查询天气(核心)
- 技术场景:天气首页展示、实时温度卡片、多城市天气监控看板。

2.根据城市查询生活指数(衍生服务接口)
更贴近用户生活的。该接口整合了日常高频使用的气象生活指数,每个指数包含等级状态+详细建议。
- 技术场景:出行提示、生活建议模块、公众号天气推送、民宿/旅游场景出行提醒。
json
"code": 1,
"msg": "操作成功",
"data": {
"city": "北京",
"list": {
"kongtiao": {/*空调开启*/
"v": "开启制暖空调",/*指数*/
"des": "您将感到有些冷,可以适当开启制暖空调调节室内温度,以免着凉感冒。"/*指数详情*/
},
"guomin": {/*过敏*/
"v": "极不易发",
"des": "天气条件极不易诱发过敏,可放心外出,享受生活。"
},
"shushidu": {/*舒适度*/
"v": "较不舒适",
"des": "白天天气晴好,但仍会使您感觉偏冷,不很舒适,请注意适时添加衣物,以防感冒。"
},
"chuanyi": {/*穿衣*/
"v": "冷",
"des": "天气冷,建议着棉服、羽绒服、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣、冬大衣或厚羽绒服。"
},
"diaoyu": {/*钓鱼*/
"v": "不宜",
"des": "天气冷,不适合垂钓。"
},......
3.天气种类列表
开发会遇到:后端返回天气文字(晴、多云、小雨),前端需要匹配对应图标,手动映射极易出错、且无法统一标准。该接口返回wid编码与天气名称的完整映射表。
- 项目首次启动调用一次,缓存至本地数据库/前端本地存储,无需重复请求,大幅优化性能。
json
{
"code": 1,
"msg": "操作成功",
"data": [
{
"wid": "00",
"weather": "晴"
},
{
"wid": "01",
"weather": "多云"
},
{
"wid": "02",
"weather": "阴"
},
{
"wid": "04",
"weather": "雷阵雨"
},......
4.支持城市列表
大部分天气接口报错,根源都是城市名称不规范、不在服务白名单。该接口返回全部可查询城市数据,包含省份、城市、区县、唯一城市ID。
- 前端下拉选择、后端参数校验,优先匹配缓存的城市列表,杜绝无效查询,提升接口成功率。
json
{
"code": 1,
"msg": "操作成功",
"data": {
"list": [
{
"id": "1",
"province": "北京",
"city": "北京",
"district": "北京"
},
{
"id": "2",
"province": "北京",
"city": "北京",
"district": "海淀"
},
{
"id": "3",
"province": "北京",
"city": "北京",
"district": "朝阳"
},......
四、应用场景
-
小程序 / H5:民宿、旅游、本地生活、日历工具,展示目的地天气 + 穿衣 / 洗车指数
-
公众号 / 机器人:定时推送城市天气提醒
-
企业后台看板:多城市天气概览,农业、物流、景区、物业系统辅助参考
-
网站嵌入:资讯站点、官网侧边天气卡片
五、开发避坑
-
优先使用城市ID查询
文字匹配容易出现歧义(如同名城市、简称输入),开发中建议:前端选城市、后端匹配对应城市ID,用ID查询天气.
-
适配图标靠wid而非文字
不要根据"晴、多云"等文字判断图标,文字可能存在表述差异,wid编码是唯一标准,适配更稳定。