与id相关的对象的REST URL最佳实践

时间:2014-03-05 13:38:45

标签: angularjs rest spring-mvc

我有一个A级,它通过一对多的关系与B级相关(A可以“拥有”几个B) 但是类代码中唯一的关系是B包含它所关联的A的id

我获取A类资源的网址映射是经典的,例如:

/a/{aId}

我只是想知道B类的url映射建议采用什么模式。

这样的事情:

/a/{aId}/b/{bId}

我目前拥有,因为这样,我知道通过查看网址B对象与ID为aId的A对象相关但我现在认为这是无用的,因为B对象已经包含了这个标识。

我正在使用 SpringMVC AngularJS 我需要将aId参数放在方法和调用中,即使我不使用它这有点烦人。

我应该使用直接映射吗?像这样:

/b/{bId}

你们在你的应用中推荐和使用了什么?

提前致谢!

2 个答案:

答案 0 :(得分:1)

我建议您考虑如何将资源公开给客户,而不是考虑如何将URI映射到您的课程。

如果您希望客户端始终使用此路径检索/修改一个或多个“b”资源,请转到解决方案1(/ a / {aId} / b ....)。

如果有意义的话,他们可以直接检索/修改你的资源b而不传递资源“a”。

如果有正当理由,您甚至可以同时执行这两项操作。

答案 1 :(得分:0)

这是您需要根据逻辑理由做出的决定。

我建议您将A类和B类视为资源,并提出以下问题。

让B资源独立于A资源是否有意义?

如果您对问题的回答是肯定的话,那么在A(/b/{id})的上下文之外使B可用是合乎逻辑的。否则,在A(/a/{id1}/b/{id2})的上下文中使B可用更有意义。