上网的时候,你有没有想过天气App是怎么知道你所在城市的温度的?或者为什么购物网站能实时显示库存和价格?这背后很多都靠网络API在跑。说白了,API就是程序之间沟通的“接口”,而网络API就是通过网络来调用别人已经写好的功能。
什么是网络API
你可以把它想象成餐厅里的菜单。你不需要知道后厨怎么做菜,只要点菜(发送请求),服务员(API)就会把做好的菜端给你(返回数据)。比如你在手机上看天气,App其实是向气象服务商的API发了个请求,对方返回一段包含温度、湿度的数据,App再把这些数据显示出来。
常见的网络API类型
现在大多数网络API都是基于HTTP协议的,返回的数据通常是JSON格式,结构清晰,容易读取。下面这几个是日常开发中经常遇到的:
1. 天气查询API
比如使用“和风天气”或“OpenWeatherMap”的API,只需要提供城市名或经纬度,就能拿到实时天气信息。
https://api.openweathermap.org/data/2.5/weather?q=Beijing&appid=你的密钥
返回的数据长这样:
{"weather":[{"main":"Clouds","description":"few clouds"}],"main":{"temp":290.15}}
2. 地图和地理编码API
高德地图、百度地图都提供了API。你可以用它查某个地址的经纬度,或者反过来,根据坐标找地址。比如你在外卖App里点定位,后台就是调用了这类API。
https://restapi.amap.com/v3/geocode/geo?address=北京市朝阳区&key=你的密钥
3. 短信验证码API
注册账号时收到的验证码,大多是通过阿里云、腾讯云的短信服务发的。开发者调用它们的API,传入手机号和模板ID,系统就自动发短信。
{"PhoneNumbers":"13800138000","SignName":"我的网站","TemplateCode":"SMS_123456"}
4. 支付类API
支付宝、微信支付都开放了API。当你在小商店扫码付款时,商家的系统其实是调用了支付平台的API,生成一个付款链接或二维码,等你支付完成后,再通过回调通知商家“钱已到账”。
5. 用户登录API(OAuth)
现在很多网站支持“微信登录”或“QQ登录”,其实就是调用了腾讯的OAuth API。你点一下,授权后,网站就能拿到你的公开信息(比如昵称、头像),不用再填一堆注册表单。
怎么简单调用一个API
用浏览器就能试试。比如打开这个地址:
https://httpbin.org/get?name=张三&age=25
你会看到一个JSON页面,里面包含了你传过去的数据。这就是最简单的GET请求。真正的项目中,会用JavaScript、Python等语言来发送请求并处理返回结果。
比如用JavaScript发起请求:
fetch('https://api.github.com/users/octocat')
.then(response => response.json())
.then(data => console.log(data.login));
使用API要注意什么
大多数API都需要申请密钥(API Key),不能随便用。而且通常有调用次数限制,比如每天最多请求1000次。另外,别忘了看对方的使用协议,有些数据不能商用,也不能缓存太久。
网络API就像互联网的螺丝钉,虽然看不见,但少了它,很多功能根本转不起来。了解一些常用API,不仅能帮你理解日常应用是怎么工作的,也能为以后自己动手做点小工具打下基础。