RESTful URL 中的最佳实践是什么?
What is the best practice in RESTful URL?
我想设计 RESTful URL 到 select 具有特定类别的设计师。
这是我的域关系:
designer <-> product <-> category
我想到了两个办法:
- 首先,仅使用 URI 路径:
/categories/{id}/products/designers
- 其次,使用查询字符串:
/designers/?categoryId={id}
我想知道哪个更好
本来是想写评论的,但是太长了,改写了一个答案。
I want to design a RESTful URL to select designers that have a specific category.
There's no such thing as RESTful URL: 这是一个错误的技术术语,似乎来自 URI 应该有意义和表达的想法REST 应用程序中客户端的语义。 这是一种误解。
Roy T. Fielding 在他的论文 chapter 5 中定义了 REST 架构风格。本文档定义了一组约束,遵循此类架构的应用程序必须遵循这些约束,并且它不强制执行任何 URI 设计。
然而,在设计 REST API 时,常用方法 在 URI 中使用名词而不是动词:REST 旨在围绕 resources,它们是根据 HTTP 方法的语义使用表示来操作的。虽然 user-friendly URI 可能是可取的,但从 REST 架构风格的角度来看,它们绝不是强制性的。 URI 本身不会使 API 或多或少 RESTful.
话虽如此,如果RESTfulURL存在,non-RESTfulURL会是什么样子?
I want to know what is better.
这个问题的答案往往几乎完全基于观点,而不是事实、参考或特定专业知识。您将从这里读到的是我的个人意见。
假设你打算使用user-friendly、resource-oriented这样的URI,好记,我会用/designers?categoryId={id}
:表示[=31=的集合]designer 资源被映射到 /designers
并且可以使用 categoryId
查询参数过滤此类集合。
我想设计 RESTful URL 到 select 具有特定类别的设计师。
这是我的域关系:
designer <-> product <-> category
我想到了两个办法:
- 首先,仅使用 URI 路径:
/categories/{id}/products/designers
- 其次,使用查询字符串:
/designers/?categoryId={id}
我想知道哪个更好
本来是想写评论的,但是太长了,改写了一个答案。
I want to design a RESTful URL to select designers that have a specific category.
There's no such thing as RESTful URL: 这是一个错误的技术术语,似乎来自 URI 应该有意义和表达的想法REST 应用程序中客户端的语义。 这是一种误解。
Roy T. Fielding 在他的论文 chapter 5 中定义了 REST 架构风格。本文档定义了一组约束,遵循此类架构的应用程序必须遵循这些约束,并且它不强制执行任何 URI 设计。
然而,在设计 REST API 时,常用方法 在 URI 中使用名词而不是动词:REST 旨在围绕 resources,它们是根据 HTTP 方法的语义使用表示来操作的。虽然 user-friendly URI 可能是可取的,但从 REST 架构风格的角度来看,它们绝不是强制性的。 URI 本身不会使 API 或多或少 RESTful.
话虽如此,如果RESTfulURL存在,non-RESTfulURL会是什么样子?
I want to know what is better.
这个问题的答案往往几乎完全基于观点,而不是事实、参考或特定专业知识。您将从这里读到的是我的个人意见。
假设你打算使用user-friendly、resource-oriented这样的URI,好记,我会用/designers?categoryId={id}
:表示[=31=的集合]designer 资源被映射到 /designers
并且可以使用 categoryId
查询参数过滤此类集合。