这篇笔记涵盖了API的基本概念、类型、工作方式、示例、协议、架构风格、与Web服务和微服务的关系、以及API的好处。
API定义:
- API是一套规则或协议,允许软件应用之间通信,交换数据、功能和特性。
- API简化并加速了应用和软件开发,允许开发者集成其他应用的数据、服务和功能,而非从头开始开发。
- API还为应用所有者提供了一种简单、安全的方式,使其应用数据和功能对组织内部门可用。
- 应用所有者还可以与商业伙伴或第三方共享或市场化数据和功能。
API安全性:
- API仅共享必要的信息,隐藏其他内部系统细节,有助于系统安全。
- 服务器或设备无需完全暴露数据,API允许共享与特定请求相关的小数据包。
API文档:
- API文档是一份技术指导手册,提供关于API的详细信息和开发者如何使用API及其服务的信息。
- 设计良好的文档可以提升用户体验,通常也意味着更成功的API。
API工作原理:
- API通信可以看作是客户端和服务器之间的请求和响应。
- 应用提交请求,称为客户端,服务器提供响应,API是建立它们之间连接的桥梁。
- 以第三方支付处理为例,当用户在电商网站上购买产品时,可能会提示“用支付宝支付”或其他第三方系统,这个功能依赖于API建立连接。
API类型:
- 数据API:连接应用和数据库管理系统。
- 操作系统(本地)API:定义应用如何使用操作系统服务和资源。
- 远程API:定义不同设备上的应用如何交互。
- Web API:使用HTTP协议在互联网上启用数据和功能传输。
Web API主要类型:
- 开放API:开源的应用程序编程接口,可通过HTTP协议访问。
- 合作伙伴API:连接战略商业伙伴,通常需要完成注册流程和获取登录凭证。
- 内部API:对外部用户隐藏,仅供公司内部使用,以提高不同开发团队间的生产力和沟通。
- 复合API:组合多个数据或服务API,允许程序员在单个调用中访问多个端点。
API示例:
- 通用登录:使用企业微信、钉钉账户登录企业应用的功能。
- 物联网(IoT):智能设备通过API提供增加的功能,如互联网触摸屏和数据收集。
- 旅行预订比较:如去哪网聚合航班信息,展示每个日期和目的地的最低价格。
- 导航应用:使用核心API显示静态或交互式地图,并提供方向、速度限制、兴趣点、交通警告等。
- 社交媒体:允许其他实体在其网站上分享和嵌入社交媒体应用上的内容。
- SaaS应用:如企业微信,通常包含多个内置API,让公司能够与他们已经使用的应用程序集成。
API协议、架构风格和语言:
- 传统上,API是指与任何低级编程语言(如JavaScript)创建的应用程序相连接的接口。然而,现代API在架构和数据格式的使用上有所不同,它们通常为HTTP构建,提供了易于访问和被多种语言编写的应用程序广泛理解的开发者友好接口。
重要协议和标准:
- SOAP:简单对象访问协议,一种轻量级的基于XML的消息协议规范。
- RPC:远程过程调用,一种提供高层次通信范式的协议。
- XML-RPC:依赖特定XML格式传输数据的协议。
- JSON-RPC:使用JSON而不是XML的远程过程调用。
- gRPC:由Google开发的高性能开源RPC框架。
- WebSocket:允许客户端和服务器之间双向通信的API。
- REST:一组Web API架构原则,RESTful API遵循特定的REST架构约束。
- GraphQL:由Facebook在2012年内部开发,后于2015年开源的查询语言和服务器端运行时。
REST与SOAP对比:
- REST通常被认为是SOAP的简单替代品,因为它轻量级、灵活、透明且相对容易使用。
- SOAP更为确定性和健壮(由于类型检查),支持者认为由于许多开发工具内置了SOAP支持,因此它更易于使用。
REST与GraphQL对比:
- GraphQL是Facebook在2012年开发的查询语言和API运行时,它解决了REST的一些限制,例如能够更精确地用单个请求定位所需资源。
API、Web服务和微服务:
- Web服务是互联网软件组件,促进了网络数据传输,每个Web服务都是API,但并非每个API都是Web服务。
- 微服务是一种架构风格,将应用程序划分为更小的独立组件,通常使用REST API连接。
API的优势:
- API简化了新应用和服务的设计和开发,以及现有应用的集成和管理。
- 它们为开发者和组织提供了显著的好处,如提高生产力、促进工作场所协作、灵活性和安全性。
- 改善与客户、供应商和业务伙伴的协作
这篇简版笔记是阅读学习以下链接全文写的,如需阅读英文原版详细全文,请查看以下链接