REST在同一事务中创建子资源。(RESTEasy)

时间:2014-04-01 10:30:20

标签: rest resteasy api-design

考虑一下场景, 有一个名为Device的对象,设备可能有多个与之关联的参数,可能有多种类型。

base-device-param (/xx/yy/4/base-device-param)
device-param-type1 extends base-resource-param (/xx/yy/{device-id}/device-param-type1) 
device-param-type2 extends base-resource-param (/xx/yy/{device-id}/device-param-type2)

使用RESTFul处理继承的方式,基类型和每个子类型将拥有自己的URI和自己的模式(如上所述)。

当我创建设备时,如您所知,将在/ xx / yy上进行POST操作。

在创建时,我们必须将参数与设备相关联。添加设备参数不能是不同的事务。这些参数包含在设备中,而不是关联。所以我不能先创建参数。

我应该采用类似RPC的方法,还是有严格的REST处理方式?

顺便说一句,如果您要建议批量操作,我会使用RESTEasy。

1 个答案:

答案 0 :(得分:0)

device表示中包含参数。

<device>
  <id>d123</id>
  <!-- more device properties -->

  <parameters>
    <param>
      <key>foo</key>
      <value>bar</value>
    </param>
    <param>
      <key>baz</key>
      <value>qux</value>
    </param>
    <!-- more parameters>
  </parameters>
</device>

您的REST资源必须将此表示映射到Java类。 与他们一起做什么以及如何存储它们取决于您。