API听起来既熟悉又陌生。我经常听说这个术语,但具体的含义又不是特殊清楚,对这个相当普遍的术语有一个相当模糊或不正确的理解。从技术上讲,API代表应用程序编程接口。在某种程度上,大多数大公司已经为他们的客户或内部使用构建了API。
但是如何用简单的语言解释API呢?还有什么比在开发和商业中使用的更广泛的含义吗?首先,让我们回过头来看看web本身是如何工作的。
WWW和远程服务器当我想到Web时,我想到的是一个由连接的服务器组成的大型网络。internet上的每个页面都存储在远程服务器的某个地方。毕竟,远程服务器并不是那么神秘——它只是远程定位计算机的一部分,经过优化可以处理请求。从长远来看,你可以在你的笔记本电脑上启动一个服务器,它可以为整个网站提供网络服务(事实上,工程师们在向公众发布网站之前会使用一个本地服务器来开发网站)。
当你在浏览器中输入www.facebook.com时,一个请求会发送到Facebook的远程服务器。一旦您的浏览器接收到响应,它将解释代码并显示页面。对于浏览器(也称为客户机),Facebook的服务器是一个API。这意味着每次访问Web上的页面时,都要与某个远程服务器的API进行交互。API与远程服务器不同——它是服务器接收请求和发送响应的部分。
API作为服务客户的一种方式你可能听说过一些公司将api打包成产品。例如,地下气象台出售对其天气数据API的访问权。
示例场景:您的小型企业的网站有一个用于为客户注册预约的表单。您希望让您的客户能够自动创建一个带有该约会详细信息的谷歌日历事件。API的使用:这个想法是让你的网站的服务器直接与谷歌的服务器对话,请求创建一个事件与给定的细节。然后,您的服务器将接收谷歌的响应,对其进行处理,并将相关信息发送回浏览器,例如发送给用户的确认消息。
另外,您的浏览器通常可以绕过您的服务器直接向谷歌的服务器发送API请求。这个谷歌日历的API与其他远程服务器的API有何不同?在技术术语中,区别在于请求和响应的格式。要呈现整个web页面,您的浏览器需要HTML格式的响应,其中包含表示代码,而谷歌Calendar的API调用只返回数据—很可能是JSON格式。
如果您的网站服务器正在发出API请求,那么您的网站服务器就是客户端(类似于您的浏览器是客户端,当您使用它来导航到一个网站)。从用户的角度来看,api允许他们在不离开网站的情况下完成操作。大多数现代网站至少使用一些第三方api。
许多问题已经有了第三方解决方案,无论是以库还是服务的形式。使用现有的解决方案通常更容易、更可靠。开发团队将他们的应用程序分解成多个通过api互相通信的服务器并不少见。为主应用服务器执行辅助功能的服务器通常称为微服务。
总而言之,当一个公司给客户提供了一个API,它只是意味着他们已经建立了一套专用的url返回纯数据响应——这意味着反应不会包含这种表象的开销你期望在一个网站这样一个图形用户界面。你能用浏览器发出这些请求吗?通常,是的。由于实际的HTTP传输是在文本中进行的,所以您的浏览器总是会尽其所能来显示响应。例如,您可以直接使用浏览器访问GitHub的API,甚至不需要访问令牌。这是您在浏览器中访问GitHub用户的API路由时得到的JSON响应
(https://api.github.com/users/petrgazarov):
浏览器似乎很好地显示了JSON响应。这样的JSON响应可以在代码中使用。从本文中提取数据很容易。然后你可以对数据做任何你想做的事情。
参考:
https://medium.com/free-code-camp/what-is-an-api-in-english-please-b880a3214a82