休息 - 关系和etag

时间:2014-10-17 14:21:11

标签: rest etag

说我有两个根资源:

/organizations
/persons

GET上的/persons/id电话会返回有关某个人的所有信息。

GET上的/persons/id/organizations号调用会返回一个人所属的所有组织的数组。

GET上的/persons/id/organizations/id号调用会返回此人所属的特定组织的所有信息。它返回与/organizations/id中相同的内容。

有可能使用其组织信息扩展人员信息,将两个GET合并为一个GET

/persons/id/?expand=organizations

我的问题是后一个请求中的ETag。

访问/persons/id时,会在响应标头中添加ETag。同样,访问/persons/id/organizations/id时,会在响应标头中添加ETag。

现在的问题:访问/persons/id?expand=organizations时,我应该在响应标头中添加哪个ETag?

换句话说,每次更新相关组织时,我应该更新一个人的ETag吗?

1 个答案:

答案 0 :(得分:0)

这取决于您的系统。如果你有一个全球ETag,那么没有问题。如果每个实体都有ETag(或版本号),并且您想将ETag分配给嵌套表示,那么您就会遇到问题......您可以定义自定义标头并将ETag与IRI(URI)一起发送,或者你必须将它们添加到响应主体。这不是一个完全解决的问题(至少不是Hydra),我们讨论了这个here