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



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

我用于获取 A 类资源的 url 映射是经典的,例如:

/a/{aId}

我只是想知道 B 类的 url 映射推荐什么模式。

像这样:

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

目前拥有的,因为这样,我通过查看 url 知道 B 对象与 id aId 的 A 对象相关,但我现在认为这是无用的,因为 B 对象已经包含此 id。

我正在使用SpringMVCAngularJS,我需要将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} 的上下文中可用更有意义。

最新更新