1

我想设计一个 RESTful URL 来选择具有特定类别的设计师。

这是我的域关系:

designer <-> product <-> category

我想到了两种方法:

  • 首先,仅使用 URI 路径:/categories/{id}/products/designers
  • 其次,使用查询字符串:/designers/?categoryId={id}

我想知道什么更好。

4

1 回答 1

2

我主要打算写一个评论,但它太长了,所以我写了一个答案。

我想设计一个 RESTful URL 来选择具有特定类别的设计师。

没有RESTful URL之类的东西:这是一个错误的技术术语,似乎源于 URI 应该有意义并在 REST 应用程序中向客户端表达语义的想法。这是一个误解

Roy T. Fielding 在其论文的第 5 章中定义了 REST 架构风格。本文档定义了一组遵循此类架构的应用程序必须遵循的约束,并且它不强制执行任何 URI 设计

然而,在设计 REST API 时,在 URI 中使用名词而不是动词是一种常见的方法:REST 旨在围绕资源进行设计,这些资源是根据 HTTP 方法的语义使用表示进行操作的。虽然用户友好的 URI 可能是可取的,但从 REST 架构风格的角度来看,它们绝不是强制性的。URI 本身不会使 API 或多或少 RESTful。

话虽如此,如果存在RESTful URL之类的东西,非 RESTful URL 是什么样的?


我想知道什么更好。

这个问题的答案往往几乎完全基于意见,而不是事实、参考资料或特定专业知识。你将从这一点读到的是我的个人观点

假设您打算使用用户友好、面向资源且易于记忆的 URI,我将使用/designers?categoryId={id}: 它表示将其映射到设计/designers器资源的集合,并且可以使用categoryId查询参数过滤此类集合。

于 2019-05-13T09:04:51.783 回答