Если вы используете подписку «Push» на Google Cloud Pub / Sub , вы зарегистрируете конечную точку HTTPS, которая получает сообщения от управляемой службы Google.Это замечательно, если вы хотите избежать зависимостей от SDK Google Cloud и вместо этого запускать асинхронные службы с помощью традиционного веб-запроса.Однако предполагаемый регистр свойств полезной нагрузки неясен, и, поскольку я использую Push-подписки, у меня нет SDK, чтобы отложить его для десериализации.
Если вы посмотрите на эта документация , вы видите ссылки на message_id
, используя snake_case ( Обновление 9/18/18: Как указано в ответ Камала документация была обновлена, поскольку это было неверно), например:
{
"message": {
"attributes": {
"key": "value"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"message_id": "136969346945",
"publish_time": "2014-10-02T15:01:23.045123456Z"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
Если вы посмотрите эту документацию , вы увидите ссылки на messageId
с использованием camelCase , например:
{
"message": {
"attributes": {
"key": "value"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "136969346945",
"publishTime": "2014-10-02T15:01:23.045123456Z"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
Если вы подпишетесь на темы и зарегистрируете результаты, вы получите оба формата, например:
{
"message": {
"attributes": {
"key": "value"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "136969346945",
"message_id": "136969346945",
"publishTime": "2014-10-02T15:01:23.045123456Z",
"publish_time": "2014-10-02T15:01:23.045123456Z"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
Идеальный ответответил бы на оба эти вопроса:
- Почему существует два формата?
- Еще один правильный или авторитетный?