API 配置
了解如何发送一个API请求。
现在,我们假设你已经创建了项目和凭据,准备开始创建一个完整的API请求吧。
API Host
为了提高了API的安全等级,我们为每个开发者提供了独立的、数据隔离的API Host,即API地址或API的域名。API Host可以在控制台-设置中查看,看起来像是:
abc.xyz.qweatherapi.com
你需要API Host与API路径、参数拼接在一起,或者在使用SDK时将API Host填写到配置项中。
API URL和参数
通常来讲,一个完整的API请求URL由scheme,host,path,path parameters和query parameters组成:
https://abc.xyz.qweatherapi.com/airquality/v1/station/{LocationID}?lang=en
\___/ \_____________________/\____________________/\___________/\______/
scheme host path path query
params params
- scheme: https
- host: 开发者的API Host,请在控制台设置中查看。
- path: /airquality/v1/station
- path params: location ID
- query params: lang=en 如有多个参数使用
&
分割。
提示:参数中如果包含了特殊字符,则必须进行URL encoding。
添加身份认证
我们在上一步创建了一个API请求URL,现在需要为它添加身份认证以便服务器可以识别我们的身份。了解身份认证。
JWT
在请求标头中添加如下内容:
Authorization: Bearer eyJhbGciOiAiRWREU0EiLCJraWQiOiAiQUJDRDEyMzQifQ.eyJpc3MiOiJBQkNEMTIzNCIsImlhdCI6MTcwMzkxMjQwMCwiZXhwIjoxNzAzOTEyOTQwfQ.MEQCIFGLmpmAEwuhB74mR04JWg_odEau6KYHYLRXs8Bp_miIAiBMU5O13vnv9ieEBSK71v4UULMI4K5T9El6bCxBkW4BdA
API KEY
在请求标头中添加如下内容:
X-QW-Api-Key: ABCD1234EFGH
Gzip
请注意,和风天气开发服务的API均使用Gzip进行了压缩,这将极大的减少网络流量,加快请求。因此,当你在开发过程中,需要对返回的数据进行解压。请参考最佳实践-Gzip。
构建完整的API请求
你可以用熟悉的开发语言构建最终的API请求,这里以curl为例:
curl --compressed \
-H 'Authorization: Bearer eyJhbGciOiAiRWREU0EiLCJraWQiOiAiQUJDRDEyMzQifQ.eyJpc3MiOiJBQkNEMTIzNCIsImlhdCI6MTcwMzkxMjQwMCwiZXhwIjoxNzAzOTEyOTQwfQ.MEQCIFGLmpmAEwuhB74mR04JWg_odEau6KYHYLRXs8Bp_miIAiBMU5O13vnv9ieEBSK71v4UULMI4K5T9El6bCxBkW4BdA' \
'https://api.qweather.com/v7/weather/now?location=101010100'
对于大部分开发者来说,构建一个API URL并非难事,但我们仍然强烈建议你阅读最佳实践-优化请求文档,了解发送API请求的一些常见问题和经验。