【发布时间】:2013-09-04 23:13:41
【问题描述】:
我正在开发基于 REST 的 API,但在弄清楚表示父/子关系的规范方法时遇到了一些麻烦。 (我在CXF中写bean,使用JAX-RS和JAXB。我从CXF提供的基本示例开始)
我的问题是假设您有一个 Foo 和一个 Bar。 Foo 和 Bar 存在 1-N 关系,即 1 Foo 有许多 Bars。我的问题是,找出 Bars a Foo 有什么的规范方法是什么?访问 Foo 拥有的 Bar 资源的规范方法是什么?
我发现例如我可以在以下位置列出 Foos:
并在单个 foo 上操作:
PUT/UPDATE/DELETE http://xxx/fooservice/foo/{fooid}
但是我如何列出 Foo 121 拥有的 Bars?我如何访问它们?我注意到默认的 JAXB 编组器似乎不输出集合只是 bean 的属性,所以如果 Foo 是:
富 - 字符串 ID - 字符串名称 - 收藏酒吧JAXB 输出类似:
这是有问题的,因为无法合理地期望客户知道 Foo 有 Bars,除非它“只是知道”(这对我来说似乎很糟糕)。因此,虽然我可以想象使用以下方法获取条形列表:
获取http://xxx/fooservice/foo/121/bars
如果实体的输出没有说明,客户如何知道 Foo 有 Bars?现在假设客户端确实获得了列表,那么实体操作似乎是这样的:
获取/删除/更新http://xxx/fooservice/foo/121/bar/435
这将访问 Foo 121 拥有的 Bar 435。
【问题讨论】: