一、API介绍
中国天气网API是由中国气象局提供的服务,通过接口可以方便地获取各地的天气情况,包括实时天气、近几日的天气信息和空气质量等等。使用该API,可以方便地将这些数据嵌入到自己的网站或者应用中,提供更加详实的天气服务。
二、数据接口
该API提供的数据接口丰富多样,可以满足不同应用场景下的数据需求。
1.实时天气数据接口
url: http://www.weather.com.cn/data/sk/[城市代码].html
方法: GET
返回数据格式:
{
"weatherinfo":{
"city":"深圳",
"cityid":"101280601",
"temp":"26",
"WD":"南风",
"WS":"小于3级",
"SD":"75%",
"AP":"1006hPa",
"njd":"暂无实况",
"WSE":"<3",
"time":"17:55",
"sm":"2.1",
"isRadar":"1",
"Radar":"JC_RADAR_AZ9010_JB"
}
}
其中,城市代码可以在API文档中获取,返回的实时天气数据包括城市名称、城市ID、温度、风向、风力等信息。
2.近七日、24小时天气预报
url: http://www.weather.com.cn/data/cityinfo/[城市代码].html
方法: GET
返回数据格式:
{
"weatherinfo":{
"city":"深圳",
"cityid":"101280601",
"temp1":"26℃",
"temp2":"20℃",
"weather":"小雨",
"img1":"d7.gif",
"img2":"n7.gif",
"ptime":"18:00",
"date": [
{
"year": "2021",
"month": "6",
"day": "21",
"week": "星期一",
"sunrise": "05:46",
"sunset": "19:08",
"night": {
"weather": "阵雨",
"templow": "20℃",
"img": "n6.gif",
"winddirect": "西南风",
"windpower": "小于3级"
},
"day": {
"weather": "阵雨",
"temphigh": "26℃",
"img": "d6.gif",
"winddirect": "西南风",
"windpower": "小于3级"
}
},
...
]
}
}
返回的数据包括每日的日期、星期几、日出日落时间、白天和晚上的天气状况、温度、风向和风力等信息。
三、使用方法
使用该API,需要先进行注册以获取自己的API Key,只有携带API Key进行访问才能获取到数据。下面是一个获取实时天气信息的简单示例:
const cityId = '101020100'; // 北京市的城市代码
const apiKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // 替换成你的API Key
const apiUrl = `http://www.weather.com.cn/data/sk/${cityId}.html?key=${apiKey}`;
fetch(apiUrl)
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
首先定义城市代码和API Key,然后构建API请求的URL,最后使用fetch
方法异步获取数据并进行处理。
四、API的限制和注意事项
使用该API需要注意以下几个限制和注意事项:
1.免费/付费版本
中国天气网API提供免费和付费版本,免费版本的每日访问量有限制,超过后会被封禁;而付费版本则可以解除这个限制,更加灵活地使用API。
2.城市代码
城市代码需要从API的文档中获取,但是该API文档中查询城市代码的功能不稳定,有时会返回错误的结果。因此,需要自己保留一份城市代码的清单作为备用。
3.数据更新
该API提供的数据并不是实时更新的,而是每隔一段时间进行更新。因此,如果需要获取实时的天气数据,可以考虑使用其他API。
4.数据格式
该API返回的数据格式比较繁琐,需要进行处理才能使用。但是,一旦熟悉了数据格式,就可以方便地获取需要的信息。
五、总结
中国天气网API是一个非常有用的天气数据接口,可以方便地获取天气信息。在使用该API时需要注意文档显示有时会不稳定而返回错误的城市代码,需要自己保留一份城市代码的清单作为备用。同时,需要注意该API提供的数据并不是实时更新的,需要酌情考虑是否适合自己的应用场景。