[ https://jira.fiware.org/browse/HELP-14008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
FW External User updated HELP-14008:
------------------------------------
The issue is easy to reproduce within the https://github.com/Fiware/tutorials.Context-Providers <https://github.com/Fiware/tutorials.Context-Providers> GitRepo
1. Pull repository
2. Run ./services stop; ./services create; ./services start;
3. Run the following cUrl commands: - Context Provider is usually localhost:3000. Orion localhost:1026
Check Random Data Generator is Running
curl -X GET \
'http://{{context-provider}}/proxy/random/health'
Check Random Data Generator is returning a valid NGSI Array Response
curl -X POST \
'http://{{context-provider}}/proxy/random/array/temperature/queryContext' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json' \
-H 'Postman-Token: b48df54e-7b3a-4406-814b-b978949c4060' \
-d '{
"entities": [
{
"type": "Store",
"isPattern": "false",
"id": "urn:ngsi-ld:Store:001"
}
],
"attributes": [
"temperature"
]
}'
Register Random Data Generator as a Context Provider
curl -X POST \
'http://{{orion}}/v2/registrations' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json' \
-H 'Postman-Token: 43ff9fdf-2584-4db9-9b95-bec256fdb7dc' \
-d '{
"description": "Current Customer Count",
"dataProvided": {
"entities": [
{
"id": "urn:ngsi-ld:Store:001",
"type": "Store"
}
],
"attrs": [
"customerCount"
]
},
"provider": {
"http": {
"url": "http://context-provider:3000/proxy/random/array/customerCount"
},
"legacyForwarding": true
}
}'
Query for Data
curl -X GET \
'http://{{orion}}/v2/entities/urn:ngsi-ld:Store:001'
The customerCount has a value of “” - I would expect an array of Lorem Ipsum entries.
> [fiware-stackoverflow] Non-Primitive Values from a Registered Content Provider are not showing a value
> ------------------------------------------------------------------------------------------------------
>
> Key: HELP-14008
> URL: https://jira.fiware.org/browse/HELP-14008
> Project: Help-Desk
> Issue Type: Monitor
> Components: FIWARE-TECH-HELP
> Reporter: Backlog Manager
> Assignee: Jose Manuel Cantera
> Labels: arrays, fiware, fiware-orion, json
>
> Created question in FIWARE Q/A platform on 20-04-2018 at 17:04
> {color: red}Please, ANSWER this question AT{color} https://stackoverflow.com/questions/49945250/non-primitive-values-from-a-registered-content-provider-are-not-showing-a-value
> +Question:+
> Non-Primitive Values from a Registered Content Provider are not showing a value
> +Description:+
> I'm using the /v2/registrations endpoint to register a content provider with the legacyForwarding flag being set. Therefore my Content Provider is offering the v1/queryContext endpoint
> When I am returning a simple value (Integer, String etc.) such as a temperature the data is added to the context correctly:
> {
> "contextResponses": [
> {
> "contextElement": {
> "attributes": [
> {
> "name": "temperature",
> "type": "Number",
> "value": 27
> }
> ],
> "id": "urn:ngsi-ld:Store:001",
> "isPattern": "false",
> "type": "Store"
> },
> "statusCode": {
> "code": "200",
> "reasonPhrase": "OK"
> }
> }
> ]
> }
> However when trying to return an array of strings as shown from a Context Provider.
> {
> "contextResponses": [
> {
> "contextElement": {
> "attributes": [
> {
> "name": "tweets",
> "type": "Array",
> "value": [
> "String 1",
> "String 2"
> ]
> }
> ],
> "id": "urn:ngsi-ld:Store:002",
> "isPattern": "false",
> "type": "Store"
> },
> "statusCode": {
> "code": "200",
> "reasonPhrase": "OK"
> }
> }
> ]
> }
> I can see the request being sent in the log and I can retrieve the following entity:
> {
> "id": "urn:ngsi-ld:Store:002",
> "type": "Store",
> "address": {
> "type": "PostalAddress",
> "value": "",
> "metadata": {}
> },
> "location": {
> "type": "geo:json",
> "value": "",
> "metadata": {}
> },
> "name": {
> "type": "Text",
> "value": "Checkpoint Markt",
> "metadata": {}
> },
> "tweets": {
> "type": "Array",
> "value": "",
> "metadata": {}
> }
> }
> As you can see the "tweets" value is blank, but the attribute exists and the type has been successfully received.
> My question is how should I return an Array or an Object as a value from a Content Provider so that Orion is able to display the data received correctly?
--
This message was sent by Atlassian JIRA
(v6.4.1#64016)
You can get more information about our cookies and privacy policies clicking on the following links: Privacy policy Cookies policy