浅谈6种API架构模式

在摸鱼刷X时,看到一张非常棒的图,是关于不同API架构的,下面学习记录一下。

在这里插入图片描述
(摘自网络)

1、gRPC

gRPC是一种高性能、跨语言、易扩展的远程过程调用(RPC)框架,可用于分布式系统之间的通信。gRPC被广泛地应用于微服务体系结构中。

在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。与许多 RPC 系统类似,gRPC 也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,并运行一个 gRPC 服务器来处理客户端调用。在客户端拥有一个存根能够像服务端一样的方法。
在这里插入图片描述

具体参考gRPC 官方文档中文版,地址如下:http://doc.oschina.net/grpc?t=58008

2、SOAP

SOAP是一种比较古老的数据交换方式,常用于在Web服务实现中交换结构化信息的协议,以其严格的标准和基于XML的消息格式而闻名,不过现在新系统的应用已经不多了。
SOAP(Simple Object Access Protocol,即简单对象访问协议) ,是一个轻量级协议,用于在分散的分布式环境中使用XML在对等体之间交换结构化和类型化的信息。或者更简单地说:SOAP是一个基于XML的通信协议
(SOAP被认为是第二代XML协议,第一代具有代表性的技术叫XML-RPC)
SOAP使用XML数据格式,以描述调用的远程接口、参数、返回值和出错信息等等。它可以基于多种传输协议来传递消息(HTTP/HTTPS、SMTP、TCP、UDP等)。
SOAP本身没有定义任何应用程序的语义,如编程模型或特定的实现语义。相反,它通过提供一个模块化的包装模型和编码机制来表达应用程序语义的简单机制,用于在模块中编码数据。这使得SOAP可以被用于从消息系统到RPC的大量系统中。
具体参考大佬相关博客。

3、GraphQL

GraphQL是Facebook开源的一种新颖的架构模式,允许客户端只请求他们需要的数据,可以有效地减少数据的过度获取等问题。
GraphQL是一种用于API的查询语言,是由Facebook公司于2012年开发的一种新型的API架构方式。GraphQL旨在提高客户端应用程序的数据获取效率,通过定义数据的类型和结构使得API更加灵活和可扩展。与传统的API不同,GraphQL允许客户端指定需要哪些数据,从而减少了不必要的数据传输和处理,提高了API的效率和可用性。
GraphQL的核心思想是用一个API来代替多个API,通过GraphQL API,客户端可以获取所需的所有数据,而不需要调用多个API或者进行多次请求。GraphQL还支持实时数据查询和订阅,使得客户端可以实时获取数据更新,从而更好地支持实时应用程序。

具体参考官网,地址如下:https://graphql.org/

4、WebHook

WebHook是一种被动式的实时通信机制,其中应用程序向预定义的URL发送HTTP POST请求以通知并触发另一个系统中的操作。
Webhook 是一个 HTTP 请求,由源系统中的事件触发并发送到目标系统,通常带有数据负载。 Webhook 是自动化的,换句话说,当它们的事件在源系统中被触发时,它们会自动发送出去。
这为一个系统(源)在事件发生时与另一个系统(目标)“对话”(HTTP 请求)提供了一种方式,并共享有关已发生事件的信息(请求有效负载)。
在这里插入图片描述

具体参考地址:https://developer.kookapp.cn/doc/webhook

5、REST

REST是一种用于设计网络应用程序的架构风格,使用标准的HTTP方法(GET、POST、PUT、DELETE)来操作资源。
REST采用无状态的客户端-服务器模型,并使用缓存来减少网络延迟和带宽消耗。REST服务通常使用JSON或其它轻量级的数据格式来交换数据。
在当前的web应用中用来进行数据通信是非常广泛的,也非常主流。

具体参考如下:https://www.runoob.com/w3cnote/restful-architecture.html?_=1492917708

6、WebSocket

WebSocket是一种支持客户端和服务器之间通过单一、长期连接方式进行的双向实时通信协议,非常适合需要低延迟更新的应用程序,如:实时聊天、主动推送、游戏等领域。
在 WebSocket API 中,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。在当前的web应用中也是非常广泛和主流的一种通信技术方式。

具体参考:https://geek-docs.com/websocket/websocket-tutorials/websockets-overview.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
整车SOA架构是指在整车设计和制造领域中,使用面向服务的架构(Service Oriented Architecture,简称SOA)来构建整车系统。 整车SOA架构的核心思想是将整车系统划分为一系列相互独立的服务,每个服务负责一个特定的功能或业务。这些服务通过标准化的接口进行通信和交互,可以在不同的硬件平台和软件环境下进行部署和运行。这样的架构可以提高整车系统的可扩展性、灵活性和可维护性。 整车SOA架构的优势主要体现在以下几个方面: 1. 模块化设计:整车系统被分解为多个相互独立的服务,每个服务专注于一个特定领域的功能。这模块化的设计使得整车系统更易于开发、测试、部署和维护。 2. 业务分离:不同的服务可以由不同的团队开发和维护,各自独立于彼此。这样可以提高开发效率,同时降低开发过程中的风险。 3. 服务复用:整车系统中的服务可以在不同的应用场景中进行复用,避免了重复开发和维护。这不仅提高了开发效率,还可以降低整车系统的成本。 4. 松耦合:每个服务只暴露必要的接口,对外界的变化具有较高的容忍性。这样可以降低整车系统中不同模块之间的耦合度,提高系统的灵活性和可扩展性。 整车SOA架构虽然有很多优点,但也存在一些挑战和限制。例如,服务之间的同步通信可能会引入较大的延迟,需要进行合理的性能优化。此外,服务接口的设计和管理也是一个关键问题,需要进行规范化和标准化的处理。 总的来说,整车SOA架构在整车设计和制造领域具有重要的应用价值,可以提高整车系统的可扩展性、灵活性和可维护性。随着技术的发展和应用的深入,整车SOA架构有望在未来得到更广泛的应用和推广。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值