EDIT 2Wie erstellt man ein Orion NGSIv2-Abonnement, das Cygnus in NGSIv1 benachrichtigt?
curl --include \
--header 'Content-Type: application/json' \
--request POST \
--data-binary '{
"description": "Day subscription",
"subject": {
"entities": [
{
"idPattern": "es-leon-.*",
"type": "Event"
}
],
"condition": {
"attrs": [
"Title",
"dFlag"
],
"expression": {
"q": "dFlag>0"
}
}
},
"notification": {
"http": {
"url" : "http://localhost:5050/notify"
},
"attrs": [
"Title",
"dFlag"
],
"attrsFormat":"legacy"
}
}' \
'http://localhost:1026/v2/subscriptions'
In Orion das Abonnement Register ok (danke für die Tipps in den Kommentaren), aber ich bin das gleiche Problem wie in here sagte, obwohl ich "attrsFormat":"legacy"
Ich mache etwas stimmt nicht? Warum verwendet Orion nicht ngsiv1, um die Benachrichtigung an Cygnus zu senden?
Cygnus zeigt orion antwortet diese:
{
"subscriptionId": "574315e77775f31b8d3da719",
"data": [{
"id": "es-leon-0",
"type": "Event",
"Title": {
"type": "none",
"value": "pepe",
"metadata": {}
},
"dFlag": {
"type": "text",
"value": "1",
"metadata": {}
}
}]
}
Wenn Sie die folgenden Zeilen in ngsiv1 sein reagieren:
{
"subscriptionId": "5743178d7775f31b8d3da71a",
"originator": "localhost",
"contextResponses": [{
"contextElement": {
"type": "Event",
"isPattern": "false",
"id": "es-leon-0",
"attributes": [{
"name": "Title",
"type": "text",
"value": "pep"
}, {
"name": "dFlag",
"type": "text",
"value": "1"
}]
},
"statusCode": {
"code": "200",
"reasonPhrase": "OK"
}
}]
}
Original Question
Wie gesagt in other question:
EDIT: note also that you can use NGSIv2 to create/update entities at Orion and have notifications in NGSIv1 if you:
Create the subscription using NGSIv1 operations
Create the subscription using NGSIv2 operations with attrsFormat equal to legacy. Have a look to more detailed information here .
So bildete ich dieses Abonnement:
curl --include \
--header 'Content-Type: application/json' \
--request POST \
--data-binary '{
"description": "Day subscription",
"subject": {
"entities": [
{
"idPattern": "es-leon-.*",
"type": "Event"
}
],
"condition": {
"attributes": [
"Title",
"dFlag"
],
"expression": {
"q": "dFlag > 0"
}
}
},
"notification": {
"callback": "http://localhost:5050/notify",
"attributes": [
"Title",
"dFlag"
]
}
}' \
'http://localhost:1026/v1/subscriptions'
aber orion lass mich nicht registrieren es diesen Fehler zu werfen:
HTTP/1.1 400 Bad Request
Connection: Keep-Alive
Content-Length: 67
Content-Type: application/json
Fiware-Correlator: 2ecdfc74-1c2f-11e6-82d7-000d3a23bf27
Date: Tue, 17 May 2016 12:59:25 GMT
{"error":"BadRequest","description":"no condition attrs specified"}
Ist das die Möglichkeit, Legacy-Attribute zu verwenden, damit es mit NGSv2 mit Cygnus arbeiten kann? Danke für die Hilfe.
EDIT 1:
die Antwort nach dem Zeichnungstag so sein sollte: Richtig?
curl --include \
--header 'Content-Type: application/json' \
--request POST \
--data-binary '{
"description": "Day subscription",
"subject": {
"entities": [
{
"idPattern": "es-leon-.*",
"type": "Event"
}
],
"condition": {
"attributes": [
"Title",
"dFlag"
],
"expression": {
"q": "dFlag > 0"
}
}
},
"notification": {
"http": {
"url" : "http://localhost:5050/notify"
},
"attributes": [
"Title",
"dFlag"
],
"attrsFormat":"legacy"
}
}' \
'http://localhost:1026/v2/subscriptions'
Aber ich bin immer noch einen Fehler:
HTTP/1.1 100 Continue
HTTP/1.1 400 Bad Request
Connection: Keep-Alive
Content-Length: 67
Content-Type: application/json
Fiware-Correlator: 60a0a1d2-1ddf-11e6-8bd6-000d3a23bf27
Date: Thu, 19 May 2016 16:33:11 GMT
{"error":"BadRequest","description":"no condition attrs specified"}
Vielen Dank für die Antwort, aber ich versuche nur und habe kein Glück, werfen Sie einen Blick auf meine Bearbeitung vielleicht finden Sie, was ich falsch mache –
Ich habe eine "EDIT 1" -Abschnitt zu meinem Beitrag hinzugefügt, um zu beantworten dieser Teil. – fgalan
Bearbeiten 2 in der Frage gemacht, Abonnement ist jetzt registriert, aber Orion reagiert im neuen NGSI-Format. Was habe ich im Abo falsch gemacht? –