我已经为Google Directory中的用户定义了一些(2)自定义架构字段,现在(在Google管理控制台中)对它们进行更新时,从Directory API(user.get)中获取父级用户的ETag不会更改。
这真的很奇怪,因为我已经一起定义了这些自定义字段,它们的类型相同,并且当一个更新的ETag更改时,而另一个更新的ETag则完全不更改。我尝试过等待某种类型的传播延迟,但是没有成功。
任何想法为什么会这样?
经过进一步调查后更新:
ETag似乎依赖于API资源管理器输出的dir api请求的“ projection”属性
没有投影(=基本)
GET https://www.googleapis.com/admin/directory/v1/users/{SOME_USER}?fields=etag%2Cid&key={YOUR_API_KEY}
Response
200
- Hide headers -
cache-control: private, max-age=0, must-revalidate, no-transform
content-encoding: gzip
content-length: 124
content-type: application/json; charset=UTF-8
date: Thu, 13 Jun 2019 13:04:57 GMT
etag: "zPBZh0mDALCYqI7HMkUiX8qQjpg/8eQEKzNh7JScsHXPxIfU4_tvCLY"
expires: Thu, 13 Jun 2019 13:04:57 GMT
server: GSE
vary: Origin, X-Origin
{
"id": "116652447405534033209",
"etag": "\"zPBZh0mDALCYqI7HMkUiX8qQjpg/8eQEKzNh7JScsHXPxIfU4_tvCLY\""
}
完整投影(用户未更改)
GET https://www.googleapis.com/admin/directory/v1/users/{SOME_USER}?projection=full&fields=etag%2Cid&key={YOUR_API_KEY}
Response
200
- Hide headers -
cache-control: private, max-age=0, must-revalidate, no-transform
content-encoding: gzip
content-length: 124
content-type: application/json; charset=UTF-8
date: Thu, 13 Jun 2019 13:05:48 GMT
etag: "zPBZh0mDALCYqI7HMkUiX8qQjpg/iQGdD6EzYPlCWxoexHcMbb56PuU"
expires: Thu, 13 Jun 2019 13:05:48 GMT
server: GSE
vary: Origin, X-Origin
{
"id": "116652447405534033209",
"etag": "\"zPBZh0mDALCYqI7HMkUiX8qQjpg/iQGdD6EzYPlCWxoexHcMbb56PuU\""
}
相同的用户,不同的ETag,因此更新了此问题(ETag是否绑定到投影)的问题?我只能假设ETag是在请求的投影所定义的字段上计算的,因此,如果我更改了一些非basic(projection)字段,则基本投影请求的结果ETag不会更改,仅完整投影请求的ETag会发生变化。 / p>