写点什么

现代 API 的类型划分

作者:阿泽🧸
  • 2022-11-11
    北京
  • 本文字数:1231 字

    阅读完需:约 4 分钟

现代API的类型划分

现代 API 以 Web 应用型 API 为主,基于现代 API 的服务对象不同、技术形式不同、使用者不同,可以对现代 API 做不同类型的划分。

1、基于服务对象的类型划分

每一个 API 所提供的服务能力,最终都是被企业内外部调用才能实现 API 的价值。根据 API 所承载业务功能的服务范围不同,现代 API 可以划分为公有型 API、私有型 API 和混合型 API。

  • 公有型 API:此类 API 主要面向企业外部客户或企业第三方合作伙伴,向外部提供企业的 API 服务能力,以业务承载为主。

  • 私有型 API:此类 API 主要面向企业内部,不面向外部提供服务能力,具有一定的私密性,以运营管理、内部服务支撑为主。

  • 混合型 API:此类 API 的服务对象没有明显的限制,兼有企业外部客户和企业内部应用之间的调用。


对现代 API 按照服务对象进行不同类型的划分,有利于明确服务对象和使用范围,为 API 自身安全性保障要求提供不同级别的防护目标。

2、基于技术形式的类型划分

每一个 API 都有着不同的技术实现,使用不同的开发语言,或使用不同的协议标准,基于这些技术形式和技术的普及程度,将现代 API 划分为 RESTful API、GraphQL API、SOAP API、gRPC API、类 XML-RPC 及其他类型 API。

  • RESTful API:此类 API 在技术形式上,以 REST 风格为主,是当前业界主流的 API 技术形式。

  • GraphQL API:此类 API 采用 Facebook 提出的 GraphQL 查询语言来构建 API 服务,尤其适用于树状、图状结构数据的使用场景。

  • SOAP API:即使用 SOAP 协议作为 API 接口交互方式的 API 应用,以 Web Service 为代表。

  • gRPC API:此类 API 采用 Google 的 gRPC 框架,通过 Protobuf 协议来定义接口和条件约束,完成客户端和服务器端的远程调用。

  • 类 XML-RPC 及其他类型 API:此类 API 包含多种技术,因使用的普及率低故将其归类在一起,通常包含 XML-RPC 的 API、JMS(Java Message Service)接口、WebSocket API 以及 IoT 通信协议的接口等。


基于技术形式的 API 类型划分带有鲜明的技术特点,它有助于使用者了解其技术构成和该技术的交互细节,了解该技术形式所带来的特有的安全特性和安全风险,做出准确的判断和合理的处置。

3、基于使用者的类型划分

不同的 API 提供不同的业务功能供不同的用户使用,这些使用者可能是具体的自然人用户,也可能是前端应用程序,还有可能是终端设备,基于 API 使用者的不同,现代 API 可以划分为用户参与型 API、程序调用型 API 和 IoT 设备型 API。

  • 用户参与型 API:此类 API 在业务交互过程中,需要自然人用户参与,比如用户单击操作、与用户身份相关的会话保持、与用户身份相关的访问控制等。大多数互联网应用中使用的 API 为此种类型。

  • 程序调用型 API:API 调用中,存在某些场景下无自然人用户参与的情况,仅仅是后端服务或前端应用程序之间的通信处理。这些场景下的 API 属于此类型的 API。

  • IoT 设备型 API:除了上述两类 API 之外,还有一些 API 仅仅提供给 IoT 设备调用,在交互流程上比上述两类要简单,或设备内无法完成流程,需要离线操作。


基于 API 的使用者对现代 API 做类型划分,有助于 API 设计者和研发人员梳理交互流程,识别不同场景下适用的安全机制,制定不同的安全控制策略来提高 API 服务的安全性。


发布于: 刚刚阅读数: 4
用户头像

阿泽🧸

关注

还未添加个人签名 2020-11-12 加入

还未添加个人简介

评论

发布
暂无评论
现代API的类型划分_API_阿泽🧸_InfoQ写作社区