Я определил несколько (2) пользовательских полей схемы для пользователей в Каталоге Google, и теперь, когда они обновляются (в консоли администратора Google), ETag родительского пользователя не изменяется при извлечении из API-интерфейса каталога (user.get).
Это действительно странно, потому что я определил эти пользовательские поля вместе, они имеют одинаковый тип, и при обновлении одного ETag изменяется, а при обновлении другого ETag вообще не меняется.Я пытался ждать какого-то типа, если была некоторая задержка распространения, но безуспешно.
Есть идеи, почему это происходит?
Обновление после дальнейшего исследования:
Кажется, что ETag зависит от атрибута "projection" запроса dir api, вывод из API Explorer
без проекции (= основной)
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 вычисляется на полях, которые определены проекцией запроса, поэтому, если я изменю какое-то неосновное (проекционное) поле, результирующий ETag для базового запроса проекции не изменится, и только ETag для полного запроса проекции будет *.1019 *