获取API密钥

前往和风天气官网注册账号并申请API密钥(Key),通常提供免费版和付费版。确保选择适合的API版本(如V7),并记录下获得的Key。详情可查:开发配置 | 和风天气开发服务

安装axios

在Vue 3项目中,使用axios进行HTTP请求更为方便。通过npm或yarn安装axios:

npm install axios

实时天气api:

location(必选)需要查询地区的LocationID或以英文逗号分隔的经度,纬度坐标,例如 location=101010100 或 location=116.41,39.92

//例如:https://your_api_host/v7/weather/now?location=101010100

getCurrentWeather(location) { 
    return axios.get(`${WEATHER_BASE_URL}/weather/now?`, {
        params: {
            location: location,
            key: API_KEY,
        }
    })
 }

返回数据详情可查:实时天气 for API | 和风天气开发服务

每日天气预测api:

路径参数【!!!注意免费版调用3d可获取,往后都需要预订获取】
  • days(必选)预报天数,支持最多30天预报,可选值:
    • 3d 3天预报。
    • 7d 7天预报。
    • 10d 10天预报。
    • 15d 15天预报。
    • 30d 30天预报。

location(必选)需要查询地区的LocationID或以英文逗号分隔的经度,纬度坐标

//例如:'https://your_api_host/v7/weather/3d?location=101010100'

getForecast(location) {
        try {
            return axios.get(`${WEATHER_BASE_URL}/weather/3d`, { // 我真服了就3天免费,你早说啊,文档又不写
                params: {
                    location: location,
                    key: API_KEY,
                },
            });
        } catch (error) {
            console.error('diyi获取天气预报失败:', error.message);
            return null;
        }
    }
 

返回数据详情可查每日天气预报 for API | 和风天气开发服务

城市搜索api:

查询参数
  • location(必选)需要查询地区的名称,支持文字、以英文逗号分隔的经度,纬度坐标(十进制,最多支持小数点后两位)、LocationIDAdcode(仅限中国城市)。例如 location=北京 或 location=116.41,39.92

模糊搜索,当location传递的为文字时,支持模糊搜索,即用户可以只输入城市名称一部分进行搜索,最少一个汉字或2个字符,结果将按照相关性和Rank值进行排列,便于开发或用户进行选择他们需要查看哪个城市的天气。例如location=bei,将返回与bei相关性最强的若干结果,包括黎巴嫩的贝鲁特和中国的北京市

重名,当location传递的为文字时,可能会出现重名的城市,例如陕西省西安市、吉林省辽源市下辖的西安区和黑龙江省牡丹江市下辖的西安区,此时会根据Rank值排序返回所有结果。在这种情况下,可以通过adm参数的方式进一步确定需要查询的城市或地区,例如location=西安&adm=黑龙江

  • adm城市的上级行政区划,可设定只在某个行政区划范围内进行搜索,用于排除重名城市或对结果进行过滤。例如 adm=beijing

如请求参数为location=chaoyang&adm=beijing时,返回的结果只包括北京市的朝阳区,而不包括辽宁省的朝阳市

如请求参数仅为location=chaoyang时,返回的结果包括北京市的朝阳区、辽宁省的朝阳市以及长春市的朝阳区

// 例如:https://your_api_host/geo/v2/city/lookup?location=beij
// 例如:https://your_api_host/geo/v2/city/lookup?location=chaoyang&adm=beijing


searchCities(location, adm = null) {
        return axios.get(`${GEO_BASE_URL}/city/lookup`, {
            params: {
                location: location,
                adm: adm,
                key: API_KEY,
            }
        });
    }

返回详情信息可查:城市搜索 for API | 和风天气开发服务

注意事项

  • 和风天气的locationId需通过城市搜索API获取,或直接使用已知ID(如北京为101010100)。
  • 免费版API有调用频率限制(如每分钟5次),需合理控制请求次数。
  • 生产环境建议将API_KEY存储在环境变量中(如.env文件),避免硬编码。
Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐