API:application programming interface,应用程序编程接口。
什么是API
API,即应用程序编程接口(Application Programming Interface),
“应用程序”在这里指的是任何具有特定功能或目的的软件,而“接口”则是指一种协议或约定,它规定了两个应用程序之间是怎样通过请求和响应来进行沟通的。
API的不太技术性比喻
API其实就是让不同的系统或应用之间可以互相沟通的方式,听起来不错对吧?那么,我们为什么需要API呢?我们先来个不太技术性的比喻吧。假设你今晚有一个三个人的晚餐预约,但因为有朋友临时决定一起加入,你想把人数改成六个。于是你打电话给餐厅,问他们能不能改。客服把你放在了待机状态,等了一分钟,终于接通了。“回过头来说,简单来说就是你打了个电话,问了个问题,然后得到了‘是’或‘不是’的答复。现在假设没有客服人员,你得自己搞清楚有多少人同一时间在这家餐厅预定了,那个时候有多少张桌子空着,他们的厨房能接待多少人,服务员的能力又是多少……这一切都是为了判断你能不能把你的预定人数加到三个,这样的工作量可真是多余啊。”
这段话的意思是:你作为顾客对某些事情并不懂,这就意味着餐厅需要向你透露很多信息,可能甚至包括一些私人数据,比如那天晚上谁在那吃饭,谁在那工作等等。在这个比喻中,餐厅就像一个提供特定服务或功能的应用程序,它的功能就是给你提供食物。而你则是一个想和朋友们一起用餐的应用程序。餐厅的客服就相当于餐厅的API,正是通过这个接口你才能和餐厅沟通,进行点餐等操作。
“像是修改预约号码这样的请求,你可以直接处理,而不用去研究餐厅预约的复杂细节。再举个更技术性的例子,想想苹果的天气应用。你觉得苹果会决定在全球建立天气监测站吗?这可是个非常昂贵的项目。如果这对苹果的商业模式来说真的很关键,那也许他们会这么做,但其实市场上已经有其他的服务在提供这些了。”
API如何工作
仔细收集全球天气数据服务,比如 weather.com。如果 weather.com 创建一个 API,让任何人都可以以他们允许的方式访问数据,那么苹果就可以利用这个 API 来填充他们的天气应用。那么 API 实际上是如何工作的呢?我们以网络 API 为例,这种 API 可以向客户端提供请求并通过 JSON 或 XML 返回响应,通常是通过互联网进行的。每一个请求和响应的周期就是一个 API 调用。
一个服务器端点的 URL 和请求方法通常是通过 HTTP(超文本传输协议)进行的,请求方法表示希望进行的 API 操作。HTTP 响应包含状态码、头部和响应体。响应体根据请求的不同而变化,可能是客户端需要访问的服务器资源,也可能是任何特定于应用的消息。你可能熟悉的一个状态码是 404错误,当你尝试访问一个可能宕机或不再存在的网站时,通常会遇到这个错误。
很棒,喜欢这个解释。以下是文本版本:假设您今晚预订了 3 人晚餐,但想要将其改为 6 人。您打电话给餐厅询问他们是否可以这样做,客服人员说可以。这很简单 - 您打电话给某人,提出请求,然后得到是或否的答复。现在,假设没有客服人员,您需要自己解决这个问题。您需要知道:• 有多少人同时在这家餐厅预订了座位?• 当时有多少张桌子是空的?• 他们的厨房容量和服务员容量是多少?所有这些问题只是为了确定您是否可以在预订中再增加三个人。这给你带来了很多不必要的工作,而你作为顾客并不擅长这些工作。更不用说餐厅还要向你透露大量数据,甚至可能是关于当晚谁在那里吃饭、谁在那里工作等等的私人数据……在这个比喻中,餐厅是一个提供特定服务或功能的应用程序,那就是给你提供食物。你是一个试图让一群朋友给你提供食物的应用程序。餐厅的客服代表就是餐厅的 API。客服是 API 接口,通过它你可以与餐厅沟通并提出请求,例如更改预订号码,而你无需深入了解餐厅预订如何运作或诸如此类的复杂细节即可做到这一点。
参考资料
- API说明
欢迎关注我的博客,如有疑问或建议,请随时留言讨论。