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

REST设计质疑需要向客户端公开的资源的多个标识符

REST(Representational State Transfer)是一种软件架构风格,用于构建分布式系统。在REST设计中,资源是系统中的核心概念,每个资源都有一个唯一的标识符(URI)来访问。然而,有时候会出现对于需要向客户端公开的资源的多个标识符的质疑。

在REST设计中,资源的标识符应该是稳定且持久的,以确保客户端可以长期访问资源。然而,有时候会出现需要向客户端公开多个标识符的情况,这可能会引发一些质疑。

一种常见的情况是资源的标识符可能会因为系统的演化而发生变化。当系统进行升级或者重构时,资源的标识符可能会发生变化,这可能会导致客户端无法访问资源。为了解决这个问题,可以考虑使用重定向机制,将旧的标识符重定向到新的标识符,以确保客户端可以继续访问资源。

另一种情况是资源可能具有多个不同的标识符,这可能会导致客户端混淆和困惑。为了解决这个问题,可以考虑在响应中返回一个规范的标识符,以便客户端可以统一使用该标识符来访问资源。

此外,还可以通过使用链接关系(Link Relations)来描述资源之间的关系,以帮助客户端理解资源之间的关联性。链接关系可以通过在响应中返回相关的链接来实现。

总结起来,对于需要向客户端公开的资源的多个标识符的质疑,可以通过以下方式解决:

  1. 使用重定向机制,将旧的标识符重定向到新的标识符,以确保客户端可以继续访问资源。
  2. 在响应中返回一个规范的标识符,以便客户端可以统一使用该标识符来访问资源。
  3. 使用链接关系来描述资源之间的关系,以帮助客户端理解资源之间的关联性。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(ECS):提供安全、高性能、可扩展的云服务器实例,支持多种操作系统。详情请参考:https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版(CDB):提供高可用、可扩展的 MySQL 数据库服务,支持自动备份、容灾等功能。详情请参考:https://cloud.tencent.com/product/cdb
  • 腾讯云对象存储(COS):提供安全、可靠、低成本的云存储服务,适用于存储和处理各种类型的文件和数据。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云人工智能(AI):提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等功能。详情请参考:https://cloud.tencent.com/product/ai
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

REST - Representati

REST基于唯一URI标识资源。 只要服务遵从定义标准或特性,我们可以将这个服务称为 restREST 并不与任何特定平台联系在一起, 当前在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 还强制要求前后端分离。

    12500

    《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

    90810

    安息吧 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语法规则是不足以约束不匹配行为

    53130

    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.6K10

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

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

    86530

    标准化API设计流程!

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

    13810

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

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

    1.6K20

    面向资源与面向活动 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 适用于跨越多个组织基于网络长周期应用程序。

    65810

    什么是REST架构?

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

    78420

    5.Web需求 & 推导REST

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

    790100

    【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)。

    575100

    前后端分离开发,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 Notes-REST架构视图

    为了展示REST设计原则,需要使用三种视图:过程视图、连接器视图、数据视图 正文: REST架构视图 过程视图(Process View) 过程视图主要作用是通过展示数据在系统中流动路径,得出组件之间交互关系...一个用户代理正在处理三个并行交互(a、b、c),用户代理客户端连接器缓存无法满足请求,因此它根据每个资源标识符属性和客户端连接器配置将每个请求转发到资源来源服务器 请求a被发送到一个本地代理...、以及响应可以明确地表名其可缓存性 连接器视图(Connector View) 连接器视图聚焦于组件之间通信机制,客户连接器检查资源标识符,以便为每个请求选择一个合适通信机制。...例如标识符如果是一个本地资源,则连接到一个处理本地资源代理组件 REST并不限制通信只能使用一种特殊协议,比如上面过程视图中请求c将http转成了wais。...作者描述了指导REST软件工程原则和为支持这些原则而选择交互约束,并将它们与其他架构约束进行了对比 下一篇将介绍REST应用于现代Web架构设计、规范、部署过程中经验与教训以及对REST架构评估

    78340
    领券