Какой регистр имен свойств считается «наиболее правильным» в Google Push Pub / Sub Push Message? - PullRequest
0 голосов
/ 17 декабря 2018

Если вы используете подписку «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"
}

Идеальный ответответил бы на оба эти вопроса:

  1. Почему существует два формата?
  2. Еще один правильный или авторитетный?

1 Ответ

0 голосов
/ 18 декабря 2018

Официально правильные имена переменных должны быть верблюжьими (messageId), на основе руководства по стилю Google JSON .На ранних этапах Cloud Pub / Sub случай змеи использовался для message_id и publish_time, но позже был изменен для соответствия стандартам стиля.Кейсы со змеями были сохранены в дополнение к верблюжьим, чтобы гарантировать, что конечные точки push в зависимости от исходного формата не сломались.Первая ссылка на документацию, которую вы указали, по-видимому, не была обновлена ​​в то время, и вскоре будет исправлена.

...