一、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提供的数据并不是实时更新的,需要酌情考虑是否适合自己的应用场景。