FIWARE Orion: вернуть идентификатор подписки

при создании подписки было бы неплохо возвращать ID подписки. Например:

curl localhost:1026/v2/subscriptions -s -S --header 'Content-Type: application/json' \
    -d @- <<EOF
{
  "description": "A subscription to get info about Room1",
  "subject": {
    "entities": [
      {
        "id": "Room1",
        "type": "Room"
      }
    ],
    "condition": {
      "attrs": [
        "pressure"
      ]
    }
  },
  "notification": {
    "http": {
      "url": "http://localhost:1028/accumulate"
    },
    "attrs": [
      "temperature"
    ]
  },
  "expires": "2040-01-01T14:00:00.00Z",
  "throttling": 5
}
EOF

Ничего не возвращает. В случае подписки идентификатор ресурса генерируется на стороне сервера (в отличие от конечной точки объектов, где идентификатор определяется на стороне клиента). Поэтому, на мой взгляд, было бы неплохо вернуть его в вызове POST. Есть ли способ получить его? Спасибо


person cdupont    schedule 27.09.2018    source источник
comment
Каковы HTTP-заголовки ответа?   -  person kzangeli    schedule 28.09.2018


Ответы (1)


Идентификатор подписки извлекается в заголовке Location в ответе на запрос создания подписки, например:

Location: /v2/subscriptions/5b991dfa12f473cee6651a1a

Дополнительные сведения см. в спецификации API NGSIv2 (отметьте "Создать подписку" раздел).

person fgalan    schedule 28.09.2018
comment
Спасибо, это как всегда здорово. Любая причина, по которой идентификатор или полная подписка не возвращаются в теле ответа? Это практично для некоторых приложений. - person cdupont; 30.09.2018
comment
Причина в том, что использование заголовка Location в ответах для предоставления идентификатора ресурса в операциях создания является распространенным шаблоном в RESTful API. - person fgalan; 01.10.2018