API协议设计的十种技术

news/2025/2/12 1:05:56/

文章目录

  • 前言
  • 1.REST
  • 2. GraphQL
  • 3. gRPC (google Remote Procedure Calls)
  • 4.Webhook
  • 5. 服务端的事件发送——SSE(Servver - Sent Events )
  • 6. EDI(Electronic Data Interchange)
  • 7. 面向API 的事件驱动设计
  • 8. WebSocket
  • 9.简单对象访问协议(SOAP)
  • 10. Message Queuing Telemetry Transport (MQTT )


前言

在这个数字时代,我们的日常生活中充斥着各种应用程序和系统之间的交互。无论是社交媒体、在线购物还是智能家居设备,它们都需要通过API(应用程序接口)来实现数据的传输和通信。然而,这些看似简单的操作背后隐藏着复杂的协议。

API协议包含了一组规则和标准,用于定义不同系统之间如何进行通信和共享数据。它们充当了不同应用程序之间的桥梁,使它们能够相互理解和交流。API协议的设计和实现需要考虑到安全性、可靠性和效率等因素,以确保数据的准确传输和系统的正常运行。

为了深入了解API的世界,这里对10个常见的API协议设计进行了梳理。


1.REST

REST 是现代 web 开发中最流行的 API 开发技术。它为数据传输提供了一种无状态的体系结构。客户端请求包含满足请求所需的所有详细信息,而服务器不保留客户端的状态。

在这里插入图片描述

在RESTful API中,每个资源都可以通过唯一的URL进行标识和访问。客户端可以通过发送HTTP请求来执行各种操作,如获取资源、创建新资源、更新现有资源或删除资源。RESTful API的设计遵循一些基本原则,如资源的表达、客户端-服务器架构、无状态性和缓存等。REST API 支持本地 HTTP 缓存头,并使用 HTTP 方法(POST、 GET、 PUT、 PATCH 和 DELETE)来操作数据。任何人都可以很容易地开始使用 REST,很简单,而且学习曲线平滑。它还具有良好的可读性和可维护性,因为其使用标准的HTTP方法和状态码来表示不同的操作结果。

然而,RESTful API也有一些限制。由于其无状态性,每次请求都需要包含所有必要的信息,这可能会导致数据传输量较大。随着应用程序的扩展,端点的数量急剧增加,更新数据库模式或数据结构也并不容易。此外,对于复杂的业务逻辑,RESTful API可能不够灵活,需要额外的架构和设计来满足需求。
如果没有任何特定的需求,REST 是最好的选择。例如,如果是开发新手,那么使用 REST 是完美的匹配,因为它的学习曲线比较浅。此外,它还有一个很大的生态系统,可以很容易地找到任何问题的解决方案。另外,在处理许多请求和有限的带宽时,最好使用 REST。在这种情况下,可以使用


http://www.ppmy.cn/news/1371722.html

相关文章

亚信安慧AntDB:为数字化铺平道路

亚信安慧AntDB是一款备受认可的国产化数据库系统,它在国内市场中积累了丰富的升级改造经验。光是大的版本升级就已经实现了8次,让AntDB持续保持了15年的平稳运行。本文将深入探索AntDB的升级改造之路,揭示背后的细节。 AntDB不断引入先进的技…

5G网络架构与组网部署01--5G网络架构的演进趋势

目录 1. 5G网络架构的演进趋势 1.1 5G移动通信系统整体架构 1.2 4G移动通信系统整体架构 1.3 4G与5G移动通信系统整体架构对比 1.4 核心网架构演进 1.5 无线接入网演进 1. 整体架构组成:接入网,核心网 2. 5G网络接入网和核心网对应的网元&#xff…

大批量接口请求的前端优化

接到一个需求,需要做一个运维的功能,对公司下平台子系统做一个开关界面,要求可以大批量对系统进行修改。这样大批量的修改,如果有个老哥手一抖点了全选,那可能同时会发送几十上百个接口,对浏览器和服务器都…

【音视频开发好书推荐1】《RTC程序设计:实时音视频权威指南》

1、WebRTC概述 WebRTC(Web Real-Time Communication)是一个由Google发起的实时音视频通讯C开源库,其提供了音视频采集、编码、网络传输,解码显示等一整套音视频解决方案,我们可以通过该开源库快速地构建出一个音视频通…

[Python] 缓存实用工具

cachetools 是一个 Python 库,提供了用于缓存的实用工具,包括各种缓存算法和数据结构,如 LRU(最近最少使用)缓存、TTL(时间到期)缓存等。使用 cachetools 可以轻松地在 Python 应用程序中实现缓…

MySQL Explain关键字:语法和输出格式

MySQL Explain关键字:语法和输出格式 语法结构如下: {EXPLAIN | DESCRIBE | DESC}tbl_name [col_name | wild]{EXPLAIN | DESCRIBE | DESC}[explain_type]{explainable_stmt | FOR CONNECTION connection_id}{EXPLAIN | DESCRIBE | DESC} ANALYZE [FOR…

固态硬盘坏了数据可以恢复吗?分享4个高效恢复方法

固态硬盘(SSD)作为现代计算机中常用的存储设备,因其高速读写性能而受到广大用户的青睐。然而无论是SSD还是传统的机械硬盘(HDD),都存在数据丢失或损坏的风险。那么当我们的固态硬盘出现问题时,存…

不确定优化入门:用简单实例讲明白随机规划、鲁棒优化和分布鲁棒优化

不确定优化入门:用简单实例讲明白随机规划、鲁棒优化和分布鲁棒优化 1 引言2 学习动机3 经典问题4 解决方案4.1 忽略不确定性4.2 随机规划4.3 鲁棒优化4.4 分布鲁棒优化 5 总结相关阅读 1 引言 按 2024 的原定计划,今年开始要学习不确定优化了。 粗略翻…