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