RESTful URL的最佳做法是什么?

时间:2019-05-13 05:37:06

标签: rest url url-design

我想设计一个RESTful URL,以选择具有特定类别的设计器。

这是我的域关系:

designer <-> product <-> category

我想到了两种方法:

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

我想知道什么更好。

1 个答案:

答案 0 :(得分:2)

我本来打算写评论,但是因为时间太长,所以我写了一个答案。

  

我想设计一个RESTful URL,以选择具有特定类别的设计器。

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

Roy T. Fielding在其论文的chapter 5中定义了REST体系结构样式。该文档定义了一组约束,遵循该体系结构的应用程序必须遵循这些约束,并且它不强制执行任何URI设计

但是,在设计REST API时,在URI中使用名词代替动词是一种常见的方法:REST的设计应围绕resources进行,使用{ HTTP方法的语义。尽管可能需要用户友好的URI,但从REST体系结构样式的角度来看,它们绝不是必需的。 URI本身不会使API或多或少具有RESTful。

已经说过,如果存在 RESTful URL 之类的东西,那么非RESTful URL会是什么样?


  

我想知道什么更好。

该问题的答案通常几乎完全基于观点,而不是事实,参考或特定的专业知识。从这一点上您会读到的是我的个人观点

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