Rest 休息关系与etag

Rest 休息关系与etag,rest,etag,Rest,Etag,假设我有两个根资源: /organizations /persons 对/persons/id的GET调用返回有关某个人的所有信息 对/persons/id/organizations的GET调用返回人员所属的所有组织的数组 对/persons/id/organizations/id的GET调用返回此人所属的特定组织的所有信息。它返回与/organizations/id中相同的内容 可以使用组织信息扩展人员信息,将两个GET合并为一个GET: 我的问题是关于后一个请求中的ETAG 访问/per

假设我有两个根资源:

/organizations
/persons
对/persons/id的GET调用返回有关某个人的所有信息

对/persons/id/organizations的GET调用返回人员所属的所有组织的数组

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

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

我的问题是关于后一个请求中的ETAG

访问/persons/id时,会将ETag添加到响应头中。同样,当访问/persons/id/organizations/id时,ETag被添加到响应头中

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


换句话说,我是否应该在每次更新相关组织时更新人员的ETag?

这取决于您的系统。如果您有一个全局ETag,那么就没有问题了。如果每个实体都有一个ETag或版本号,并且希望将ETag指定给嵌套表示,则会出现问题。。。您可以定义一个自定义头并将etag与irisuri一起发送,也可以将它们添加到响应主体中。这不是一个完全解决的问题,至少Hydra没有,我们对此进行了讨论

/persons/id/?expand=organizations