9

现代API的类型划分_枫叶飘飘的技术博客_51CTO博客

 2 years ago
source link: https://blog.51cto.com/key3feng/5885001
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

现代API的类型划分

精选 原创

key_3_feng 2022-11-24 21:09:26 博主文章分类:2022年11月 ©著作权

文章标签 API 文章分类 其它 系统/运维 yyds干货盘点 阅读数172

现代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服务的安全性。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK