2015-08-12 8 views
5

Nella versione corrente di Orion Context Broker, 0.23.0, una delle nuove funzionalità aggiunte è che supporta le entità di filtro in base ai valori degli attributi (NGSI v2). Attualmente sto eseguendo operazioni GET come indicato in http://telefonicaid.github.io/fiware-orion/api/v2/ e quello che ottengo è l'intero insieme di entità, nessuna azione di filtraggio. Potresti per favore aiutarmi in questo senso con un chiaro esempio su come usare la nuova API REST, NGSI v2?Filtro per valore di attributo in Orion Context Broker 0.23.0

Grazie mille in anticipo

risposta

3

le funzionalità di filtro NGSIv2 si basano nel seguente operazione:

GET /v2/entities?q=<query_string> 

dove query_string specifica la stringa di query come definito nel NGSIv2 specification document. Ad esempio, per ottenere tutti i soggetti che temperature è inferiore a 24, che humidity è nel range tra 75 e 90, e che status è "correre" utilizzare la seguente operazione:

GET /v2/entities?q=temperature<24;humidity==75..90;status=running 

È anche possibile fare query utilizzando "tradizionale" NGSIv1, utilizzando il campo scope nel payload POST /v1/queryContext. La stessa query sarà fatto nel modo seguente:

POST /v1/queryContext 

{ 
    "entities": [ 
     { 
     "type": "", 
     "isPattern": "true", 
     "id": ".*" 
     } 
    ], 
    "restriction": { 
     "scopes": [ 
     { 
      "type": "FIWARE::StringQuery", 
      "value": "q=temperature<24;humidity==75..90;status=running" 
     } 
     ] 
    } 
} 

Il following link fornisce ulteriori informazioni.

Si noti che alcuni filtri (ad esempio maggiore/minore di, intervalli, ecc.) Presuppongono che il tipo nativo del valore dell'attributo sia un numero. Tenere conto del fatto che le operazioni NGISv1 per creare/aggiornare gli attributi trasformano sempre i valori in stringhe (a causa della compatibilità XML, non più mantenuta in NGSIv2). Pertanto, se è necessario memorizzare i valori degli attributi come numero per applicare filtri superiori/inferiori, intervalli, ecc., Quindi utilizzare le operazioni NGSIv2 per creare/aggiornare questi attributi. L'avvertenza è spiegata in modo più dettagliato in the following piece of documentation.

+1

Tale funzionalità sarà disponibile in Orion 0.24.0 (data di uscita prevista: inizio settembre 2015). Tuttavia, la funzionalità è già implementata nel ramo di sviluppo nel repository Orion all'indirizzo https://github.com/telefonicaid/fiware-orion se hai fretta e ne hai bisogno in questo momento. – fgalan

+0

Semplice, fantastico !! Esattamente al punto. Grazie mille!!! : D – juanba1984

+0

È possibile utilizzare queste restrizioni anche per gli abbonamenti? Mi piacerebbe utilizzare la restrizione della geolocalizzazione in abbonamento. Se sì, ho intenzione di aggiornare orion alla versione più recente. :) – Xavier

Problemi correlati