2016-05-25 2 views
1

Мы тестируем, как получить значения атрибутов в приложении Tourguide (https://github.com/Fiware/tutorials.TourGuide-App), и он не работает должным образом.Невозможно получить значение атрибута в качестве JSON при использовании заголовка «Fiware-Service: tourguide`

Если мы выполняем:

curl -v <cb_host>:<cb_port>/v2/Entities/0115206c51f60b48b77e4c937835795c33bb953f/attrs/name/value -s -S --header 'Fiware-Service: tourguide'

мы получаем

{"error":"NotAcceptable","description":"accepted MIME types: text/plain"}

Но если мы выполняем:

curl -v <cb_host>:<cb_port>/v2/Entities/0115206c51f60b48b77e4c937835795c33bb953f/attrs/name/value -s -S --header 'Fiware-Service: tourguide' --header 'Accept: text/plain'

мы ожидаем получить изд значение:

Elizalde

Мы пытались заставить ответ JSON с помощью:

curl -v <cb_host>:<cb_port>/v2/Entities/0115206c51f60b48b77e4c937835795c33bb953f/attrs/name/value -s -S --header 'Fiware-Service: tourguide' --header 'Accept: application/json'

но мы получаем ту же ошибку:

{"error":"NotAcceptable","description":"accepted MIME types: text/plain"}

Мы провели некоторые дополнительные тесты.

Мы создаем объект Bcn-Welt, как описано в https://github.com/telefonicaid/fiware-orion/blob/develop/doc/apiary/v2/fiware-ngsiv2-reference.apib#L922

Если мы выполняем:

curl -v <cb_host>:<cb_port>/v2/Entities/Bcn-Welt/attrs/humidity/value мы получим ожидаемую величину.

Но, если мы создадим объект, используя заголовок Fiware-service: tourguide и выполнить запрос снова (с помощью Fiware-Service: tourguide header):

curl -v <cb_host>:<cb_port>/v2/Entities/Bcn-Welt/attrs/humidity/value -s -S --header 'Fiware-Service: tourguide'

мы получаем:

{"error":"NotAcceptable","description":"accepted MIME types: text/plain"}

Информация о используемая версия контекстного брокера

{ "orion" : { "version" : "1.1.0-next", "uptime" : "0 d, 2 h, 16 m, 2 s", "git_hash" : "2397fd46be54008409e7b2e4d29e572a2c598f2c", "compile_time" : "Tue May 24 10:38:00 UTC 2016", "compiled_by" : "root", "compiled_in" : "838a42ae8431" } }

ответ

1

С NGSIv2 specification, при GET операции значение атрибута (GET /v2/entities/entityId/attrs/attrName/value):

If response payload MIME type is application/json:

  • ...
  • If attribute value is a string, number, null or boolean, a HTTP error "406 Not Acceptable: accepted MIME types: text/plain" is returned.

Таким образом, кажется, что поведение, как и ожидалось.

Боковое примечание: вы не должны использовать /v2/Entities/... по URL-адресу, но /v2/entities (нижний регистр «E»), как определено в спецификации NGSIv2.

+0

Спасибо, мы будем использовать другое поле для примера поваренной книги. –

+0

У нас есть сомнения относительно поведения операции, если мы используем заголовок 'Accept */*' Контекстный брокер пытается вернуть неподдерживаемый формат: GET/v2/Entities/Bcn-Welt/attrs/влажность/значение HTTP/1,1 User-Agent: завиток/7.35.0 Узел: Ориона: 1026 Accept: */* HTTP/1.1 406 Not Acceptable Connection: Keep-Alive Content-Length: 73 Content-Type: применение/ Fiware JSON-коррелятор: 11f9e63e-2324-11e6-9391-0242ac11000d Дата: Чт, 26 мая 2016 9:27:30 GMT * Подключение # 0 для размещения Ориона оставил нетронутыми { "Эрро r ":" NotAcceptable "," description ":" accepted MIME types: text/plain "} –

+0

Чтобы не смешивать темы в SOF в том же сообщении ... не могли бы вы задать новые сомнения в новом вопросе, пожалуйста ? Благодаря! – fgalan

Смежные вопросы