Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >关于 REST API,你了解多少?

关于 REST API,你了解多少?

作者头像
shengjk1
发布于 2025-05-16 04:53:03
发布于 2025-05-16 04:53:03
1860
举报
文章被收录于专栏:码字搬砖码字搬砖

什么是 REST API

REST 是 REpresentational State Transfer 的缩写,是分布式超媒体系统的架构风格。Roy Fielding 于 2000 年在他的著名论文中首次提出了这一点。从那时起,它已成为构建基于 Web 的 API(应用程序编程接口)的最广泛使用的方法之一。 REST 不是一种协议或标准,而是一种架构风格。在开发阶段,API 开发人员可以通过多种方式实现 REST。符合REST架构风格的Web API(或Web Service)称为 REST API(或RESTful API)。

REST API 风格

REST(Representational State Transfer)是一种基于网络的软件架构风格,它的设计原则包括以下六个方面:

  1. 统一接口(Uniform Interface):定义了一组通用的接口约束,包括资源的标识、资源的操作和资源的表示。这样可以使不同的组件之间更加松耦合,提高系统的可扩展性和可维护性。
  2. 客户端-服务器(Client-Server):将应用程序分为客户端和服务器两个部分,它们之间通过接口进行通信。这种分离可以提高系统的可扩展性和简化组件的开发。
  3. 无状态(Stateless):服务器不会保存客户端的状态信息,每个请求都是独立的。这样可以减少服务器的负担,提高系统的可伸缩性。
  4. 缓存(Cache):客户端可以缓存服务器的响应,以减少网络传输和提高性能。服务器可以通过设置响应头来控制缓存的行为。
  5. 分层系统(Layered System):将系统分为多个层次,每个层次都有特定的功能和责任。这样可以提高系统的可扩展性和安全性。
  6. 按需代码(Code on Demand):服务器可以向客户端传输可执行代码,以扩展客户端的功能。这种方式在 REST 中并不是必须的,但是它可以提高系统的灵活性和可扩展性。

为什么需要 REST API

REST API是在Web应用程序的发展过程中产生的。在Web应用程序的早期阶段,应用程序之间的通信主要是通过SOAP(Simple Object Access Protocol)和XML-RPC(XML Remote Procedure Call)等协议来实现的。这些协议使用XML格式来传输数据,但它们的设计复杂、繁琐,不易于使用和扩展。

在这种情况下,Roy Fielding在2000年提出了REST(Representational State Transfer)的概念,作为一种新的Web应用程序架构风格。REST使用HTTP协议作为通信协议,使用URI(Uniform Resource Identifier)来标识资源,使用HTTP请求方法(如GET、POST、PUT、DELETE等)来操作资源,并使用HTTP状态码来表示操作结果。REST的设计风格简单、灵活、可扩展,因此在Web应用程序中得到了广泛的应用。

随着Web应用程序的不断发展,REST API已经成为现代Web应用程序的重要组成部分。它可以提高应用程序的互操作性、灵活性和可伸缩性,从而为用户提供更好的体验。

其他

REST API != HTTP Roy Fielding 在他的论文中没有提到任何实现方式——包括任何协议偏好。到目前为止,凡是满足 REST 原则的都是 RESTful

总结

简而言之,在 REST 架构风格中,数据和功能被视为资源,并使用统一资源标识符 (URI) 进行访问。 通过使用一组简单的、定义良好的操作对资源进行操作。此外,资源必须与其表示形式解耦,以便客户机能够以各种格式访问内容,如 HTML、 XML、纯文本、 PDF、 JPEG、 JSON 等。 客户端和服务端要使用标准化的接口和协议来交换资源,通常是 HTTP,但 REST 并不强制要求它。 并且可以控制缓存、检测传输错误以及身份验证或访问控制等等。最重要的是,与服务器的每次交互都必须是无状态的。所有这些原则都有助于 RESTful 应用程序变得简单、轻量级和快速。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关于 REST API 六大指导原则,你了解多少?
在前一篇文章中 关于 REST API,你了解多少? ,我们聊到了 REST 六大指导原则,有些原则不太容易理解,这次我们详细说明一下。
shengjk1
2025/05/16
1280
关于 REST API 六大指导原则,你了解多少?
REST之父,居然为了晋升答辩,搞了一个HATEOAS架构?(只聊技术)
今天听到两个同学找我,说想试试HATEOAS,方便通过晋升答辩,被我严词拒绝。任何针对晋升的技术选型,都是耍流氓。
架构师之路
2024/12/24
800
REST之父,居然为了晋升答辩,搞了一个HATEOAS架构?(只聊技术)
⚡REST 和 SOAP 协议有什么区别?
> 原文链接:<https://document360.com/blog/rest-vs-soap/>
oil欧呦
2024/05/07
3860
什么是REST架构?
REST架构风格是全新的针对Web应用的开发风格,是当今世界最成功的互联网超媒体分布式系统架构,它使得人们真正理解了Http协议本来面貌。随着 REST架构成为主流技术,一种全新的互联网网络应用开发的思维方式开始流行。
java思维导图
2018/10/08
8250
知识分享之规范——RESTful API规范
知识分享之规范类别是我进行整理的日常开发使用的各类规范说明,作为一个程序员需要天天和各种各样的规范打交道,而有些规范可能我们并不是特别了解,为此我将一些常见的规范均整理到知识分享之规范系列中,便于小伙伴们快速翻阅学习。
cn華少
2022/03/04
1K0
知识分享之规范——RESTful API规范
【Go API 开发实战 2】RESTful API 介绍
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数或者接口,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无须访问源码,或理解内部工作机制的细节。
腾讯技术工程官方号
2019/05/16
1.5K0
【Go API 开发实战 2】RESTful API 介绍
如何理解 CRUD 与 REST
CRUD 和 REST 是应用开发领域中两个比较常见的概念,但由于二者之间概念存在重叠而常常被混淆。简单来说,REST 是一种软件架构风格,是一种针对网络应用的设计和开发方式。而 CRUD 是一个缩写,指的是数据库中可以执行的四种基本操作:创建 (Create)、读取 (Read)、更新 (Update) 和删除 (Delete)。
码匠Majiang
2023/01/03
9850
如何理解 CRUD 与 REST
REST vs SOAP:两种 Web 服务协议的分析
REST(Representational State Transfer)和 SOAP(Simple Object Access Protocol)都是 Web 服务架构的两种主要风格。两者都提供了一种通信方式,可以让不同的应用程序通过网络互相交换数据。但是,它们之间有一些重要的区别。
物立
2023/04/18
1.1K0
正确甄别API、REST API、RESTful API和Web Service之间的异同
看到API你会想起什么?是接口、第三方调用、还是API文档?初看你可能会觉得这太熟悉了,这不是系统开发日常系列吗?但你仔细想一想,你会发现API的概念在你脑海里是如此的模糊。如何你通过搜索引擎检索API,你会看到类似这样的信息:API——Application Programming Interface(应用程序编程接口),这太抽象了。接下来,我将结合在开发中总结的一些经验,以通俗的方式聊聊API、REST API、RESTful API以及Web Service这四者之间的联系与区别。
IT大咖说
2019/06/19
27.2K1
正确甄别API、REST API、RESTful API和Web Service之间的异同
细说RESTful API之入门介绍
REST(英文:Representational State Transfer,又称具象状态传输)是Roy Thomas Fielding博士于2000年在他的博士论文中提出来的一种万维网软件架构风格,目的是便于不同软件/程序在网络(例如互联网)中互相传递信息。目前在三种主流的Web服务实现方案中,因为REST模式与复杂的SOAP和XML-RPC相比更加简洁,越来越多的web服务开始采用REST风格设计和实现。
编程随笔
2019/09/11
6940
细说RESTful API之入门介绍
[解读REST] 6.REST的应用经验以及教训
衔接上文[解读REST] 5.Web的需求 & 推导REST,上文根据Web的需求推导出了REST架构风格,以及REST的详细描述和解释。自从1994年以来,REST架构风格被用于指导Web架构的设计和开发工作,最重要的两点体现是在设计HTTP和URI两个互联网规范协议中,以及实现这些规范的libwww-perl客户端库,Apache HTTP项目(httpd)以及其他的实现中,所得到的经验以及教训。 其实REST也用于指导约束超媒体的设计工作,比如HTML,但是Fielding并未在论文中详细解释这部分
blackheart
2018/01/19
1.1K0
Ajax与REST
REST(Representational State Transfer)是一种开发思想,互联网不断发展,富媒体越来越多的应用,不断地冲击着我们的应用,使应用的可扩展性和系统复杂性不断增加,还好,出现了基于Ajax的应用架构,让我们可以继续REST的风格。
大江小浪
2018/07/25
7550
Ajax与REST
REST In WCF4.0
REST软件架构是由Roy Thomas Fielding博士2000年在他的论文《Architectural Styles and the Design of Network- based Software Architectures》首次提出的。他提出的理论对后来的Web技术的发展产生了巨大的影响,他是许多重要Web架构标准的设计者,这些标准就是HTTP、URI等。 1.1) Rest的英文全称是“Representational State Transfer”。中文翻译为“表述性状态转移”。RES
张善友
2018/01/30
6000
关于 REST API 和 SOAP,你知道多少?
通过上篇文章 关于 REST API,你了解多少?,我们知道REST API是在Web应用程序的发展过程中产生的。在Web应用程序的早期阶段,应用程序之间的通信主要是通过SOAP(Simple Object Access Protocol)和XML-RPC(XML Remote Procedure Call)等协议来实现的。这些协议使用XML格式来传输数据,但它们的设计复杂、繁琐,不易于使用和扩展。
shengjk1
2025/05/16
420
[解读REST] 5.Web的需求 & 推导REST
衔接上文[解读REST] 4.基于网络应用的架构风格,上文总结了一些适用于基于网络应用的架构风格,以及其评估结果。在前文的基础上,本文介绍一下Web架构的需求,以及在对Web的关键协议进行设计和改进的过程中遇到的问题;以及在对基于网络应用的架构风格进行评估的过程中的领悟;结合Web的需求进而推导出REST这种架构风格,随后使用REST来指导Web架构的设计和改进工作。 1 Web的需求 在本系列博客的第一篇博客[解读REST] 1.REST的起源中,Web之父Berners-Lee在世界上第一个网站写下的第
blackheart
2018/01/19
8180
[解读REST] 5.Web的需求 & 推导REST
RESTful杂记
在网上找了许久的关于REST的资料,发现网上大部分都是说的比较片面,虽然有部分说出了本质,但也没有详细提出,所以在这里记录一下。
菜的黑人牙膏
2019/01/21
6840
架构之:REST和RESTful
近几年微服务是如火如荼的在发展,而微服务之间的调用和渐渐的从RPC调用转移到了HTTP调用。于是经常听到有些同事说我们提供微服务并且暴露RESTful接口给别的系统,但是什么是RESTful接口呢?它和REST有什么关系呢? 别急,本文将会带你一探究竟。
程序那些事
2021/07/15
9740
架构师该如何为应用选择合适的API
架构师的主要活动是做出正确的技术决策。选择合适的API是一项重要的技术决策。那么今天就看看API的选择问题。
yuanyi928
2020/06/17
1.8K0
【转载】理解本真的REST架构风格
    本文将带您领略REST架构的起源、与Web的关系、REST架构的本质及特性,以及REST架构与其他架构风格之间的比较。
莫问今朝
2018/08/31
6840
【转载】理解本真的REST架构风格
浅谈 RESTful API
全称:REST,全称是Resource Representational State Transfer,即:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。
Spark学习技巧
2021/02/12
1K0
浅谈 RESTful API
相关推荐
关于 REST API 六大指导原则,你了解多少?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档