关于 API 你应该知道的一切
API(应用程序编程接口)是两个软件组件之间的连接器或中介。它提供一组明确的协议,使接口成为可能,定义了请求和响应的性质。开发人员通过 API 文档了解如何构建请求和响应。
简单来说,API 允许两个应用程序相互通信。例如,查看天气或在应用程序上发送和接收消息时,都在使用 API。
API 工作周期
当使用应用程序时,会发生以下步骤:
请求或数据被发送到服务器。
服务器解释并处理请求。
服务器提供必要的响应。
响应被成功地发送回设备。
每次应用程序要求特定响应时,这个循环都会重复。
API 协议和架构
REST:REST(具象状态传输)是高度首选和采用的 API 架构类型。它依赖于客户端/服务器模型,分离了 API 的前端和后端部分,且不存储任何状态。
SOAP:SOAP(简单对象访问协议)主要用于创建基于 XML 的 Web API。它兼容多种通信协议,如 HTTP、TCP 和 SMTP。SOAP 的特点是高度结构化、标准明确,便于扩展和添加功能。
RPC:RPC(远程过程调用)能够执行可操作的任务,非常适合发送各种参数并接收相应的响应。
API 的类型
根据 API 的使用场景和访问权限,可以将其分为不同类型。企业应根据自身需求选择合适的 API 类型。
合作伙伴 API
这种 API 仅限于拥有官方许可的授权客户端使用,通常用于与提供 API 的公司有业务关系的用户。合作伙伴 API 受到组织的青睐,因为它们可以对资源的使用方式和访问权限进行更大的控制。
合作伙伴 API 的优势:
能够集中精力在公司的核心业务和发展上,而不必过度关注开发工作。开发者之间的协作可以解决某些难题,增强项目进展。
保留合作伙伴 API 策略有助于集成多种电子商务软件解决方案,使软件在快速变化的行业中保持更新和相关性。
公共 API
公共 API 是完全开放的,任何外部开发者或企业都可以使用。适合那些愿意与公众或其他业务组织共享其应用程序和数据的企业。
公共 API 的优势:
公共 API 的一个主要优势是,只要用户有互联网连接,就可以在任何地方使用。此外,公共 API 也非常容易实现。
内部 API
内部 API(或私有 API)仅供企业内部使用,用于连接业务内部的数据。虽然内部 API 的安全性和身份验证相对较弱,但随着安全安排的改进,这一问题正逐步得到解决。
内部 API 的优势:
内部 API 的一个主要优势是,它可以帮助开发人员在更短的时间内制定和构建新应用程序。由于内部 API 连接了业务的不同部分,开发过程中的适应性和灵活性也得以提高。
复合 API
复合 API 是两个或多个 API 的组合,集成了各 API 的最佳特性。它们通常带来更高的速度、灵活性和性能,从而提高了整体效率。
复合 API 的优势:
复合 API 的一个主要优势在于,它可以在单个调用中执行多个操作,简化了数据处理流程,将所有必要的数据整合在一起,而无需逐一解析多个响应。
API 的工作原理
API 通过函数调用实现,其任务是请求软件执行特定的操作或功能。当用户发起 API 调用时,它会通知应用程序执行相应任务,随后应用程序通过 API 与 Web 服务器通信并完成操作。
API 基本上充当了应用程序和 Web 服务器之间的桥梁。因此,每当软件被指示执行任务或请求信息时,API 便是实现这一过程的关键。日常生活中,API 的应用举例包括PayPal支付、和风天气查询等。
什么是函数调用?
函数调用由名词和动词组成,并在 API 文档中详细描述。API 的主要任务是简化并加快软件开发过程。
一些 API 开发工具
沙盒 (Sandbox): 一种简单的 RESTful API 模拟工具,主要用于降低在测试期间调用第三方 API 的成本。
Apigee: 谷歌提供的 Apigee 工具,用于促进应用程序和服务之间的数据传输,是构建连接应用程序的理想选择。
APIMatic: APIMatic 是一个开发者体验平台,专为网站 API 设计,在维护 API 更新方面表现灵活。它还支持将 API 描述转换为多种格式,如 WADL、Swagger、RAML、OAI 格式、IO Docs、API Blueprint、HAR 1.4、Postman Collections 等。
建立 API 实践
构建 API 时,可参考以下五项最佳实践:
安全性: 使用基于令牌的身份验证来构建安全可靠的 API。在确保安全性的同时,也要保持用户体验的友好性。
文档: 精心设计的 API 文档可以显著降低项目成本、提高效率并缩短实现时间。应创建详尽的 API 文档,使开发者能够清晰理解整个开发过程。
节流: 为应对流量溢出、预防 DoS 攻击以及备份 API,应用程序节流是关键措施之一。合理的流量控制可保障 API 的稳定性和可靠性。
SDK 和库: 提供必要的 SDK 和库资源,可以加快开发进程,让开发团队更高效地构建应用程序。
重写 HTTP 方法: 通过使用自定义 HTTP 头
X-HTTP-Method-Override
,允许 RESTful API 重写 HTTP 方法,解决某些代理只支持 POST 和 GET 方法的限制。
关于 API 的一些事实
自 2007 年以来,API 的使用量增加了 13 倍。
谷歌、脸书和推特每天处理约 50 亿到 100 亿次 API 调用。
Netflix 的 API 支持其在超过 200 台设备上进行流媒体传输。
总结
Java、Python、Node.js、PHP 和 ASP.NET 等技术的 Web 开发中,API 涉及广泛应用。从简单的应用开发到复杂的业务协作,API 为数字和技术连接建立了安全的环境,助力企业提升盈利能力。API 可以根据业务需求进行定制和构建,在应用程序中完成各项实际工作。
版权声明: 本文为 InfoQ 作者【幂简集成】的原创文章。
原文链接:【http://xie.infoq.cn/article/4aa3261465d6f0160e67c7f90】。文章转载请联系作者。
评论