RESTful Web服务中的资源路径

时间:2012-11-13 14:54:18

标签: java web-services rest java-ee jax-rs

我正在按照REST架构风格构建Web服务。我正在使用JAX-RS来简化它。然而,这个问题并不关心技术,而是正确使用资源路径。

我在我的应用程序中创建了一些资源,例如Quiz,Question和QuestionFeedback。

我创建了

等路径

/quiz /question/1

等等。现在,我已经看到了一些公开/approved/questions/approved等路径的Web服务API。路径的批准部分看起来更像是问题可能具有的属性(在这种情况下),我想知道这是否正常,以及边界在使其成为请求参数和路径的一部分之间的位置?

可以公开Web服务中的路径,以某种方式公开系统中的一个预期资源,例如Question,但是通过/approved之类的路径正常的/questions路径?有什么规则,这应该是怎样的?

如果我没有人问我会创建像/questions?type=approved这样的路径:GET。

因为已批准不是我系统中的资源。或者可以创建公开资源的路径......但不要直接使用资源名称。

1 个答案:

答案 0 :(得分:2)

您问的是,只能通过附加信息理解的路径是否正常。好吧,他们不是错误的,但我不会选择它们。

你的问题是(在我看来):

  

向我提出所有具有批准额外功能的问题。

这归结为两个步骤:

第一步

获取所有问题。

GET /questions

第二步

其中只有获得批准的人才能获得。

GET /questions?approved=true

这很自然。

相比之下,为什么第二步会产生/approved?这与/questions有什么关系?没有明显的方法来回答这个问题。虽然技术上可以使用像/pink-elephants这样的奇怪路径,这些路径应该转化为“给我所有批准的问题”,但这不是我推荐的。