我有一个A类,它通过一对多关系与B类相关(A可以"有"多个B)但是类代码中唯一的关系是 B 包含它所关联的 A 的id
。
我用于获取 A 类资源的 url 映射是经典的,例如:
/a/{aId}
我只是想知道 B 类的 url 映射推荐什么模式。
像这样:
/a/{aId}/b/{bId}
我目前拥有的,因为这样,我通过查看 url 知道 B 对象与 id aId
的 A 对象相关,但我现在认为这是无用的,因为 B 对象已经包含此 id。
我正在使用SpringMVC和AngularJS,我需要将aId
参数放在方法和调用中,即使我不使用它,这有点烦人。
我应该使用直接映射吗?像这样:
/b/{bId}
你们在应用程序中推荐和使用什么?
提前感谢!
与其考虑如何将 URI 映射到您的类,我建议您考虑如何向客户端公开您的资源。
这意味着,如果您希望客户端始终使用此路径来检索/修改一个或多个"b"资源,请选择解决方案 1 (/a/{aId}/b...)。
如果他们可以直接检索/修改资源 b 而不传递资源"a",请选择解决方案 2。
如果有正当理由,您甚至可以同时执行这两项操作。
这是您需要在逻辑基础上做出的决定。
我建议你将A类和B类视为资源,并提出以下问题。
让 B 资源独立于 A 资源有意义吗?
如果您对问题的回答是肯定的,那么在 A (/b/{id}
的上下文之外使 B 可用在逻辑上是有意义的。否则,使 B 在 A (/a/{id1}/b/{id2}
的上下文中可用更有意义。