了解API通信方式与JSON在API中的作用
API是编程中非常常见的范例,即使你是刚刚开始从事开发人员职业生涯开发者,在API及其使用方面,特别是在Web和移动开发中,也可能会出现在实际项目中。
API是应用程序编程接口,它基本上是两个解耦系统可以相互通信的方法。在更多技术术语中,API允许系统或计算机程序(通常是服务器)接收请求并发送适当的响应(发送给客户端,也称为主机)。
假设你正在构建天气应用程序,你需要一种方法将用户的地址划分为纬度和经度,然后是在特定位置获得当前或预测天气的方法。
作为开发人员,你希望专注于构建应用程序并将其货币化,而不是将基础架构放置到地理编码地址或在每个城市放置气象站。
今天我们幸运的是,谷歌和OpenWeatherMap这样的公司已经把这个基础设施放到了这样的位置,你只需要一种与它交谈的方式,这就是API的用武之地。
但是,到目前为止,我们已经开发了一个非常抽象和含糊的定义的API。
现在,公司开发,维护和保护上述基础设施需要花钱,因此公司通常会向你出售其API访问权限,这是通过称为API密钥完成的,API密钥是将开发人员与API相关联的唯一字母数字标识符。
每当你要求API向你发送数据时,你都会传递API密钥。然后,服务器可以对你进行身份验证并跟踪你正在进行的API调用次数,并且你将收到适当的费用并支付它。
API密钥还允许速率限制或API调用限制(一种在特定时间范围内限制API调用次数的方法,以免压倒服务器,防止DOS攻击 - 拒绝服务)。但是,大多数公司都会提供免费配额,例如,在向你收费之前,每天会提供25,000个免费API。
到目前为止,我们已经确定API是两种计算机程序可以相互通信的方法。如果服务器正在存储数据(例如网站),并且你的浏览器请求下载该站点的代码,那就是API正在运行。
下面我们通过比喻例子解释API。
由于你永远不会直接与厨师交谈,因此他/她无法接收你的请求(,也不能让他/她在您订购后为你提供餐点。
我们中间需要一个人。在这种情况下,它是服务员,类似于API。API提供了一种媒介,你(客户)可以与服务器(厨师)通信,以及一组规则如何进行通信(菜单 - 允许双方一餐等)。
现在,你如何与API(服务员)交谈?你可能会说英语,但厨师只会讲中文。服务员是否应该知道要翻译的两种语言?如果第三个人只会说普通话怎么办?然后怎样呢?好吧,所有客户端和服务器都必须同意使用通用语言,而在计算机编程中,该语言是JSON,发音为JAY-sun,它代表JavaScript Object Notation。
此时,我们还不太清楚JSON的样子,它不是一种计算机编程语言,它只是一种语言,如英语或中文,每个人(每个人都是计算机)都在保证的基础上理解。它是有保证的,因为它是标准的,特别是RFC 8259,Internet工程任务组(IETF)的JavaScript Object Notation(JSON)数据交换格式。
所以JSON是客服端与服务端定义的语言,我们也可以定义其他方式,比如xml格式,或string数据返回。
这篇文章我们最主要是了解api在两者通信发中实际作用,JSON在开发中只是充当配角。