考虑下面的示例方案,因为你可以看到一个团与承包商有多对多关系,对于几个团来说可以是相同的。
如果我必须与数百名普通承包商一起创建两个团,我基本上会将相同的承包商上传两次到服务器:
<regiments>
<regiment>
<contractors>
<conctractor>
<id>1</id>
...
</contractor>
<conctractor>
<id>2</id>
...
</contractor>
</contractors>
</regiment>
<regiment>
<contractors>
<conctractor>
<id>2</id>
...
</contractor>
<conctractor>
<id>5</id>
...
</contractor>
</contractors>
</regiment>
</regiments>
我正在使用PUT,其中团队和承包商具有预定义的ID,因为我使用REST将桌面应用程序同步到Web应用程序,并且两者都必须为其实体使用相同的ID。
请注意,承包商对象非常大,并且有自己的子列表,因此即使是单个承包商重新上传也会给服务器带来大量的时间和资源损失。
如何避免一遍又一遍地上传相同的承包商?
答案 0 :(得分:1)
您没有理由不能使用允许您链接到之前为PUT
的现有承包商的表示:
<regiments>
<regiment>
<contractors>
<contractor-ref uri="/contractors/1"/>
<contractor-ref uri="/contractors/2"/>
</contractors>
</regiment>
<regiment>
<contractors>
<contractor-ref uri="/contractors/2"/>
<contractor-ref uri="/contractors/5"/>
</contractors>
</regiment>
</regiments>