[Backlogmanager] [FIWARE-JIRA] (HELP-14008) [fiware-stackoverflow] Non-Primitive Values from a Registered Content Provider are not showing a value

FW External User (JIRA) jira-help-desk at jira.fiware.org
Mon Apr 23 10:01:00 CEST 2018


     [ 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)


More information about the Backlogmanager mailing list

You can get more information about our cookies and privacy policies clicking on the following links: Privacy policy   Cookies policy