首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

原 REST - Representati

REST基于唯一URI标识的资源。 只要服务遵从定义的标准或特性,我们可以将这个服务称为 rest。REST 并不与任何特定的平台联系在一起, 当前在Web上使用 HTTP 完成的。...一个RESTful定位web系统有下列特征: URI 统一资源标识符-这是互联网上资源的唯一标记。web上的每个资源都有这样一个唯一标识符-通用标识符 (例如, URL)。...设计RESTful服务 设计RESTful服务的第一步是确定需要公开的资源,然后是把这些资源映射到url。我们不应该局限在应用的方法设计上面,而是应该致力于设计资源的url。...但是, 当我们构建服务公开端点时, 应该注意安全问题。rest风格的服务只http端点, 因此使用 http (如 HTTPS、证书) 实现的所有安全方面也可以用 rest 实现。...适于使用的情况 当我们计划设计一个专门在web上使用的应用程序时, 或者当我们需要快速客户端集成时, 可以使用REST。

1.2K70

RESTful API生命周期管理

REST SOAP 使用标准HTTP的架构风格来提供简单的连接方式。不存在标准化或强制性的合同。 使用服务接口在严格执行的WSDL合同中公开业务逻辑的协议。...这通常是一种首选方法,取决于客户的需求。 接口模型 RESTful服务使用统一的接口,将架构解耦并分解成以下四个约束。 资源鉴定 资源使用统一资源标识符(URI)命名。...通过呈现层处理资源 通过客户端资源的表示,可以进行修改和删除,只要调用程序具有适当的权限。使用上面的示例,可以构建以下JSON数据: ?...响应:将提供的信息从服务器封装到客户端。 路径:正在请求的资源的唯一标识符。 参数:请求中包含的元素,用于过滤或指定请求期间使用的键值对。...这种做法的批评者可能会指出,这种方法只有一个公共整合远离版本化需要解决。因此,甚至私有API应该被设计和公开可用的资源 - 这将包括版本控制的需要。

3.6K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ⚡REST 和 SOAP 协议有什么区别?

    ### **在 REST 之前的 SOAP**SOAP 出现在 REST 之前。REST 的设计旨在解决 SOAP 的一些问题。...客户端使用 “资源 ”访问和操作 REST API 公开的数据。资源代表不同的 API 功能,并通过资源 URL 对其进行访问。可以将资源视为 API 返回的数据对象。...所有资源都与宠物店这一主题有关,每个资源都代表了你可以创建、操作或删除的不同数据对象。要请求一个资源,你需要向该资源的唯一 URL 发送 HTTP 请求,并指定要对该资源采取的操作(方法)。...与此相反,REST 倡导的前后端分离的原则不依赖于客户端库,从而保持了网络服务的可迁移性、可扩展性和独立发展性。在资源受限的网络服务环境中,REST 的优势还在于客户端可以有效地缓存 HTTP 响应。...REST 的优势使其非常适合资源受限的公开 Web 服务。REST 的数据格式 JSON 与浏览器高度兼容,并且比 SOAP 的 XML 有效载荷所需的带宽更少。REST 还强制要求前后端的分离。

    15100

    《ASP.ENT Core 与 RESTful API 开发实战》-- 读书笔记(第1章)

    第 1 章 REST 简介 1.1 API 与 REST API 是一个系统向外暴露或公开的一套接口,通过这些接口,外部应用程序能够访问该系统 REST 是一种基于资源的架构风格,任何能够命名的对象都是一个资源...,如 user,一个资源具有一个统一的资源标识符(URI),如 user/1234,通过 URI 能够标识并访问该资源 REST 定义了6个架构约束: 客户端-服务器 统一接口 分层系统 缓存 无状态...4xx:客户端错误:请求包含语法错误或请求内容不正确 5xx:服务端错误:服务器在处理请求的过程中发生了错误 1.3 REST 最佳实践 首先,在实现 RESTful 系统时,应正确地使用 HTTP...方法、HTTP 消息头和 HTTP 状态码 除了原则以外,在设计资源的 URI 时也应该注意以下原则: 使用名词的复数表示一个资源集合 使用斜线 ”/“ 用来表示资源之间的层次关系 对资源的增删改查等操作名称不应该包含在...URL 中 如果一个操作无法对应到资源的某个操作上,此时可以适当地在 URI 中包含动词,但仍然应该基于一个资源的标识符 查询字符串可以用来对资源进行筛选、搜索或分页查询 URI 应使用小写字母 URI

    91410

    安息吧 REST API,GraphQL 长存

    在客户端和服务器之间加入 GraphQL 层的考量有多种原因。其中之一,也许是最受欢迎的原因便是效率。客户端通常需要向服务器请求多个资源,而服务器会用单个资源进行响应。...REST API 通常是端点的集合,其中每个端点代表一个资源。因此,当客户端需要获取多个资源的数据时,需要对 REST API 进行多次往返,以将其所需的数据放在一起。...这对客户端和服务器而言都是网络和内存资源的浪费。 REST API 的另一大问题是版本控制。如果你需要支持多个版本,那通常意味着需要新的端点。...客户端可以要求服务器只执行使用查询唯一标识符预先批准的查询。据说 Facebook 采用的就是这种方法。 认证和授权是在使用 GraphQL 时需要考虑的其他问题。...DataLoader 的原理是使用批处理和缓存的组合。如果相同的客户端请求导致需要向数据库请求多个数据,则可以使用 DataLoader 来合并这些请求,并从数据库批量加载其响应。

    2.7K30

    Rest Notes-将REST应用于URI

    摘要: 自1994年以来,REST架构风格就被用来指导现代Web架构的设计和开发,本篇描述了在创作超文本移交协议(HTTP)和统一资源标识符(URI)两个互联网规范的过程中,以及将这些技术部署在libwww-perl...客户端库、Apache HTTP服务器项目、协议标准的其他实现的过程中,应用REST所学到的经验和教训 正文: 将REST应用于URI Web标准化 开发REST的动机是为Web的运转方式创建一种架构模式...应用于URI REST既被用来为URI规范定义“资源”这个术语,也被用来定义通过它们的表述来操作资源的通用接口的全部语义 重新定义资源 早期Web架构将URI定义为文档的标识符,创作者往往是根据网络上一个文档的位置来定义标识符...URI 一个资源可以拥有多个标识符,或者说存在两个或更多的不同URI在访问服务端时具有相同的语义。...尽管无法避免这种不匹配,但是可以识别出他们 尽管URI的设计和REST中标识符的概念相匹配,但是仅仅依靠URI的语法规则是不足以约束不匹配的行为的。

    53430

    Microsoft REST API指南

    Microsoft REST API指南 摘要 Microsoft REST API指南作为一种设计原则,鼓励应用程序开发人员通过RESTful HTTP接口访问资源。...如果您对 RESTful 设计不熟悉,请参阅以下优秀资源: REST on Wikipedia — 维基百科上关于REST的核心概念与思想的介绍。...REST论文—— Roy Fielding网络架构论文中关于REST的章节,“架构风格与基于网络的软件体系结构设计” RFC 7231—— 定义HTTP/1.1 语义规范的权威资源。...7.3 规范标识符 除了提供友好的URL之外,能够移动或重命名的资源必须包含唯一稳定的标识符。...服务器驱动的分页:通过在多个响应有效载荷上强制分页请求来减轻拒绝服务攻击。 客户端驱动的分页:允许客户机只请求它在给定时间可以使用的资源数量。

    4.6K11

    如何理解一个高度抽象化的架构风格本质

    那么我们可以这样理解,REST是Web自身的架构风格,REST是HTTP/1.1协议等Web规范的设计指导原则,HTTP/1.1协议正是为实现REST风格的架构而设计的。...万维网的核心部分是由三个标准构成的: 统一资源标识符(URI),这是一个统一的为资源定位的系统。 超文本传送协议(HTTP),它负责规定客户端和服务器怎样互相交流。...资源标识符 REST使用资源标识符来表示组件之间交互所涉及的特定资源。...因为集中式的链接服务器完全无法满足Web的超大规模和跨越多个组织领域的需求,所以REST采用了其他的方式——以来资源的创作者来选择最符合被标识的概念本质的资源标识符。...REST接口被设计为可以高效地移交大粒度的超媒体数据,并针对Web的常见情况做了优化,但是这也导致该接口对于其他形式的架构交互而言不是最优的。 为了获得统一的接口,需要有多个架构约束来指导组件的行为。

    87630

    架构师该如何为应用选择合适的API

    符合或兼容于这种架构风格(简称为 REST 或 RESTful)的网络服务,允许客户端发出以统一资源标识符访问和操作网络资源的请求,而与预先定义好的无状态操作集一致化。...目前在三种主流的Web服务实现方案中,因为REST模式与复杂的SOAP和XML-RPC相比更加简洁,越来越多的Web服务开始采用REST风格设计和实现。...客户端服务器:客户端和服务器必须彼此独立,并且客户端应仅知道资源的URI。 无状态:服务器不得存储与客户端请求相关的任何内容。客户端负责维护应用程序的状态。 可缓存的:资源必须可缓存。...与RESTful API相比,这提供了更流畅的客户端体验,后者可能要求客户端对多个数据进行多次请求,并在数据返回后进行操作。...在HTTP 1.1中,当多个请求来自多个客户端时,它们将被一一处理。这会降低系统速度。HTTP 2允许多路复用,因此可以同时处理多个请求和响应。 gRPC的开发模式和之前提到的CORBA有些类似。

    1.6K20

    标准化API设计流程!

    vs GraphQL 当涉及到API设计时,REST和GraphQL都有自己的优点和缺点。...支持用于修改数据的Mutations和用于实时通知的Subscriptions。 非常适合聚合来自多个来源的数据,并能很好地满足快速发展的前端需求。...REST和GraphQL都是公开数据和支持现代应用程序的有效选择。 gRPC是如何工作的?...连接池 在访问资源时,我们经常需要从数据库中加载数据。打开正在关闭的数据库连接会增加大量开销。所以我们应该通过一个开放连接池连接到数据库。连接池负责管理连接生命周期。 如何设计安全有效的API?...❝下图以购物车为例展示了典型的API设计 请注意,API设计不仅仅是URL路径设计。大多数时候,我们需要选择适当的资源名称、标识符和路径模式。

    17110

    面向资源与面向活动的 Web 服务

    如权威的 Gang of Four(GoF) 设计模式这本书所述,对于熟悉面向对象设计模式概念的开发者来说,面向资源服务与基本 Memento 模式类似。...实际上,服务提供方维护一组资源,并且公开一组基本操作来执行以下任务: 检索资源 修改资源 创建新资源 删除资源 根据定义,REST 样式 Web 服务是面向资源的服务。...您可以通过统一资源标识符(Universal Resource Identifier,URI)来识别和定位资源,并且针对这些资源而执行的操作是通过 HTTP 规范定义的。...例如,银行服务可以公开一个名为 transferFunds 的操作,该操作不同的输入将完全决定服务的资金转移功能。 在面向资源的服务中,一组普通操作担当支持性的工作角色,为客户端提供访问和操作资源。...然而,资源是关注的中心,如下面 图 1 所示。 图 1. 面向资源服务与面向活动服务的比较 在面向活动服务中,对客户端请求执行的每个活动的单一操作来说,操作是关注的中心。

    1.4K50

    6.REST的应用经验以及教训

    自从1994年以来,REST架构风格被用于指导Web架构的设计和开发工作,最重要的两点体现是在设计HTTP和URI两个互联网规范协议中,以及实现这些规范的libwww-perl客户端库,Apache HTTP...REST对于“资源”的定义有一个前提:标识符应该尽可能的少改变。原因在于Web使用的是内嵌的标识符,而不是链接服务器。...REST引入了”表述“这个中间层,即通过资源的表述来操作资源,而不是直接在资源本身上进行操作(一个来源服务器维护者资源的标识符和其对应的表述的映射关系,因此可以通过由资源标识符定义的通用接口移交表述来操作一个资源...REST对于资源的定义来自于Web的核心需求:独立创作跨越多个可信任的组织边界的互相链接的超文本。...尽管URI的设计和REST中标识符的概念相匹配,但是仅仅依靠URI的语法规则是不足以约束不匹配的行为的。

    1.1K100

    我们应该重新定义REST吗?

    客户端应用程序可以设计为对状态转换优化(例如通过预期将来的用户交互并相应地预取资源来优化),并且可以公开控件以供用户直接操作其状态(典型的示例是 Web 浏览器中无处不在的“后退按钮”,在先前的状态转换上执行某种...实现“统一接口”的先决条件是以下设计约束: 基于资源的 API:REST 中信息的主要抽象是资源(resource)。可以命名的任何信息都可以是资源。...资源可能是虚拟对象(例如数字文档或图像),或者是表征现实世界中事物(例如人或地点)属性的数据结构。无论其性质如何,都必须使用一套通用的唯一标识符系统来识别所有资源。...URI 标准直接对应具有唯一标识符的 REST 资源概念。资源由媒体类型表征,这些媒体类型使用 HTTP 的 Content-Type 标头声明,从而使 HTTP 消息具有自描述性。...至于 REST,在计算机科学领域,这应该被视为一个相当特殊的概念。它的设计用例确实非常狭窄。 REST 适用于跨越多个组织的基于网络的长周期应用程序。

    66110

    什么是REST架构?

    REST本身只是为分布式超媒体系统设计的一种架构风格,而不是标准。 基于Web的架构,实际上就是各种规范的集合,这些规范共同组成了Web架构。比如Http协议,比如客户端服务器模式,这些都是规范。...),可伸缩性(无状态性使得服务器端可以 很容易的释放资源,因为服务器端不必在多个request中保存状态)。...REST提出了如下设计准则: 网络上的所有事物都被抽象为资源(resource); 每个资源对应一个唯一的资源标识符(resource identifier); 通过通用的连接器接口(generic...connector interface)对资源进行操作; 对资源的各种操作不会改变资源标识符; 所有的操作都是无状态的(stateless)。...在REST中,所有的URL都对应着资源,只要URL的设计是良好的,那么其呈现的系统结构也就是良好的。

    79620

    5.Web的需求 & 推导REST

    为了获得统一接口,需要多个架构约束来指导组件的行为,REST由四个接口架构约束来定义: 资源的识别; 通过表述来操作资源; 自描述的信息; 超媒体作为应用程序状态的引擎(HATEOAS)。...REST的数据元素如下: 数据元素 实例 资源 一个超文本引用所指向的概念性目标 资源标识符 URL,URN 表述 HTML,图片,音视频 表述元数据 媒体类型,修改时间等 资源元数据 source...资源标识符则是对一个资源的唯一标识,由命名权威来为资源分配标识符,映射的语义同样由命名权威来负责。...下面是一个典型的REST的过程视图: 一个用户代理处理三个并行的交互,用户代理的客户端连接器的缓存无法满足请求,则它根据每个资源标识符的属性和客户端的连接配置,把每个请求路由到资源的来源服务器...客户端连接器检查资源标识符,以便为每一个请求选择一个合适的通信机制,比如标识符如果是一个本地资源,则链接到一个处理本地资源的代理组件。

    800100

    【API架构】REST API 设计的原则和最佳实践

    这篇最佳实践文章面向对创建 RESTful Web 服务感兴趣的开发人员,这些服务提供跨多个服务套件的高可靠性和一致性;遵循这些准则;服务定位于内部和外部客户快速、广泛、公开采用。...六项原则/约束 客户端-服务器:关注点分离是客户端-服务器约束背后的原则。通过将用户界面问题与数据存储问题分开,我们提高了用户界面跨多个平台的可移植性,并通过简化服务器组件提高了可扩展性。...按需代码:REST 允许通过下载和执行小程序或脚本形式的代码来扩展客户端功能。通过减少需要预先实现的功能数量来简化客户端。它允许在部署后下载功能,提高了系统的可扩展性。...基于资源:在请求中使用 URI 作为资源标识符来标识单个资源。资源本身在概念上与返回给客户端的表示分开。...通常很难知道数据边界应该是什么,但是通过了解您的数据,您很可能有能力进行尝试,并将什么作为代表返回给您的客户是有意义的。为您的客户设计,而不是为您的数据设计。

    1.4K10

    REST API设计指导——译自Microsoft REST API Guidelines(四)

    前言 前面我们说了,如果API的设计更规范更合理,在很大程度上能够提高联调的效率,降低沟通成本。那么什么是好的API设计?这里我们不得不提到REST API。...关于REST API的书籍很多,但是完整完善实践丰富的设计指导并不多见,我们有幸看到了微软团队的作品——Microsoft REST API Guidelines,因此才有了此篇内容。...除了友好的 URL 之外,可以移动或重命名的资源也应该暴露一个包含唯一固定标识符的 URL。 PS:一般是暴露主键字段,也可以是其他唯一的易于理解的字段,比如姓名、标题、邮箱等等。...与其组织的隐私策略一致,客户端不应该在URL中发送个人可识别信息(PII)参数(作为路径或查询字符串的一部分),因为可以通过客户端、网络和服务器日志和其他机制不经意地公开该信息。...在HTTP中,客户端应该使用Accept标头请求响应格式。 服务端可以选择性的忽略,即使这不是典型的良好的服务。 客户端可以发送多个Accept标头,服务可以选择其中一个格式进行返回。

    2K50

    REST In WCF4.0

    ),可伸缩性(无状态性使得服务器端可 以很容易的释放资源,因为服务器端不必在多个request中保存状态)。...并且 REST针对Web的常见情况做了优化,使得REST接口被设计为可以高效的转移大粒度的超媒体数据,这也就导致了REST接口对其它的架构并不是最优的。...接口(客户端与我的服务交互的方式)由体系结构约束设置。 Rest的设计原则: REST架构是针对Web应用而设计的,其目的是为了降低开发的复杂性,提高系统的可伸缩性。...REST提出了如下设计准则: (1)网络上的所有事物都被抽象为资源(resource),比如图片、音乐、视频、文字、以及服务等等; (2)每个资源有唯一的资源标识符(resource...和 DELETE)的统一接口完成操作; (4)对资源的各种操作不会改变资源标识符,URI不变; (5)所有的操作都是无状态的(stateless)。

    580100

    前后端分离开发,RESTful 接口如何设计

    无状态(stateless)这个术语至关重要,它使得应用程序可以用不可知的方式进行通信。RESTful API 通过统一资源定位符地址(URL)公开服务。URL 名称将资源的区分为接受内容或返回内容。...虽然 REST 中的 “R” 的含义是 “表现”而非“资源”,但是应该在构建系统时允许客户端指定请求的内容格式,请牢记这一点。...客户端在需要时发出 GET 请求获取指定资源。客户端可以在本地缓存请求结果,服务器可以在远程缓存结果,系统的中间层可以在请求链路中间缓存结果。这是一个与具体应用程序无关的特性,可以加入系统设计中。...然而,从 0 级到 3 级的转变要困难得多,因此增量式升级转变通常也会增值。 首先,确定希望公开哪些信息资源。采用 HTTP 作为处理这些信息资源的应用协议,包括内容协商。...网址:http://www.ietf.org/rfc/rfc1738.txt 5.1.2.3 IRI 国际化资源标识符(IRI)在概念上是一个用 Unicode 编码的 URI,用于在 Web 上使用的标识符中支持世界上各种语言的字符

    2.5K01

    REST API URI的七大设计原则

    在了解REST API URI设计的规则之前,让我们快速浏览一些我们将要讨论的术语。 URIs REST API使用统一资源标识符(URI)来寻址资源。...REST API设计人员应该在考虑将REST API资源模型传达给潜在的客户端开发者的前提下,创造URI。在这篇文章中,我将尝试为REST API URI 引入一套设计规则。...两个不同的URI映射到两个不同的资源。如果URI不同,那么资源也是如此,反之亦然。因此,REST API必须生成和传递精确的URI,不能容忍任何的客户端尝试不精确的资源定位。...有些API碰到这种情况,可能设计为让客户端重定向到相应没有尾斜杠的URI(也有可能会返回301 - 用来资源重定向)。...结论 当你在设计REST API服务时,您必须注意这些由URI定义的资源。 正在构建的服务中的每个资源将至少有一个URI标识它。这个URI最好是有意义的,且能充分描述资源。

    1.9K60
    领券