TOP
SSV Software Systems Register  Register
Log in to check your private messages  Log in to check your private messages
Startseite FAQ Search Mitglieder Profile  Log in 
SSV Support-Forum
RTDC mit cURL …

 
Post new topic   Reply to topic    SSV-Forum Forum Index >>> Real Time Data Channels (RTDC)
<<< Previous topic - Next topic >>>  
Display posts from previous:   
Author Message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 30.12.2014, 13:24    Post subject: RTDC mit cURL … Reply with quote

Hallo Forum.

Auf RTDC-Datenprojekte lässt sich auch problemlos per cURL-Kommandozeile zugreifen. Nehmen wir einfach einmal das folgenden Datenprojekt mit dem Namen TEMP und den beiden Daten-Items T_SSV und T_SC als Beispiel:

Code:
01: {
02:     "do": [
03:         {
04:             "id": 10,
05:             "name": "TEMP",
06:             "desc": "Temperaturfuehler",
07:             "property": {},
08:             "item": [
09:                {
10:                     "id": 49,
11:                     "name": "T_SSV",
12:                     "data": [
13:                         1416655631,
14:                         "18.2"
15:                     ],
16:                     "type": "GAUGE",
17:                     "desc": "Temperatur Demo SSV",
18:                     "property": {
19:                         "unit": "C"
20:                     }
21:                 },
22:                 {
23:                     "id": 50,
24:                     "name": "T_SC",
25:                     "data": [
26:                         1416583523,
27:                         "23.6"
28:                     ],
29:                     "type": "GAUGE",
30:                     "desc": "Temperatur Demo SC",
31:                     "property": {
32:                         "unit": "C"
33:                     }
34:                 }
35:             ]
36:         }
37:     ]
38: }


Durch dieses Datenprojekt ergeben sich die folgenden RTDC-REST-API-Links für HTTP-Zugriffe:

Code:
01: http://<SERVER:PORT>/rtdc/v0/?get=do
02: http://<SERVER:PORT>/rtdc/v0/?get=data
03: http://<SERVER:PORT>/rtdc/v0/?get=do&do=TEMP
04: http://<SERVER:PORT>/rtdc/v0/?get=data&do=TEMP&item=T_SC
05: http://<SERVER:PORT>/rtdc/v0/?get=data&do=TEMP&item=T_SSV


Mit den ersten beiden Links (Zeilen 01 und 02) lässt sich per REST-API-READ mit Hilfe einer HTTP-GET-Abfrage (HTTP-GET-Request) das komplette Datenprojekt abfragen – die HTTP Response liefert im ersten Fall die vollständigen JSON-Daten zum RTDC-Datenprojekt, im zweiten Fall nur die Daten-Items. Mit dem Link in Zeile 03 wird das vollständige Datenobjekt TEMP abgefragt – falls es weitere Datenobjekte in einem Datenprojekt gibt, werden sie in diesem Fall nicht angezeigt. Der Link in Zeile 04 dient zur Abfrage des Daten-Items T_SC im Datenobjekt TEMP, der Link in Zeile 05 bezieht sich auf T_SSV, ebenfalls im Datenobjekt TEMP. In beiden Fällen liefert die jeweilige HTTP-Response die JSON-Daten mit dem betreffenden Item. Hier ein cURL-Beispiel:

Code:
curl -X GET -H "X-RTDC-Auth-Key: <API KEY>" "<REST API LINK>"


In diesem cURL-Beispielaufruf muss ein gültiger <API KEY> und <REST API LINK> als Ersatz für die Platzhalter eingefügt werden.

Gruß KDW


Last edited by kdw on 08.01.2015, 19:17; edited 3 times in total
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 02.01.2015, 15:59    Post subject: Daten-Update … Reply with quote

Hallo Forum.

Auch eine HTTP-PUT-Anfrage (REST-Operation UPDATE per HTTP-PUT-Request) ist selbstverständlich mit einer cURL-Kommandozeile möglich. Hier ein Beispiel:

Code:
curl -X PUT -H "X-RTDC-Auth-Key: <API KEY1>" -H "X-RTDC-Access-Key: <API KEY2>" -d @<DATEINAME> "<REST API LINK>"


In diesem cURL-Beispielaufruf muss ein gültiger <API KEY1>, <API KEY2>, <DATEINAME> und <REST API LINK> als Ersatz für die jeweiligen Platzhalter eingefügt werden.

Die JSON-Daten für den PUT-Request müssen zuvor in einer Datei gespeichert werden. Hier ein JSON-Datenbeispiel, um im Datenobjekt TEMP den Daten-Item T_SSV mit dem neuen Wert „12.3“ zu überschreiben.

Code:
{"do":[{"name":"TEMP","item":[{"name":"T_SC","data": 12.3}]}]}


Der Name der Datei mit den JSON-Daten ersetzt den Platzhalter <DATEINAME> in der cURL-Kommandozeile.

Die JSON-Daten für den PUT-Request müssen nicht in einer Datei stehen. Sie können auch direkt in die cURL-Kommandozeile eingebaut werden:

Code:
curl -X PUT -H "X-RTDC-Auth-Key: <API KEY1>" -H "X-RTDC-Access-Key: <API KEY2>" -d '{"do":[{"name":"TEMP","item":[{"name":"T_SC","data": 12.3}]}]}' "<REST API LINK>"


Wenn Sie cURL unter Windows benutzen, müssen die JSON-Daten in der Kommandozeile etwas anders formatiert werden:

Code:
curl -X PUT -H "X-RTDC-Auth-Key: <API KEY1>" -H "X-RTDC-Access-Key: <API KEY2>" -d "{\"do\":[{\"name\":\"TEMP\",\"item\":[{\"name\":\"T_SC\",\"data\": 12.3}]}]}" "<REST API LINK>"


Wenn man es ganz genau nimmt, muss in der cURL-Kommandozeile eines PUT-Requests auch noch der Content-Type "application/json" für die Header-Daten angegeben werden:

Code:
curl -X PUT -H "Content-Type: application/json" -H "X-RTDC-Auth-Key: <API KEY1>" -H "X-RTDC-Access-Key: <API KEY2>" -d @<DATEINAME> "<REST API LINK>"


Gruß KDW


Last edited by kdw on 06.01.2015, 08:16; edited 1 time in total
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 06.01.2015, 08:12    Post subject: CREATE und DELETE … Reply with quote

Hallo Forum.

Über eine cURL-Kommandozeile lassen sich auch die REST-Operationen CREATE (Ressource erzeugen per HTTP-POST-Request) und DELETE (Ressource löschen per HTTP-POST-Request) ausführen. Hier ein Beispiel für einen POST-Request

Code:
curl -X POST -H "X-RTDC-Auth-Key: <API KEY1>" -H "X-RTDC-Access-Key: <API KEY2>" -d @<DATEINAME> "<REST API LINK>"


In diese cURL-Beispielkommandozeile muss zunächst ein gültiger <API KEY1>, <API KEY2>, <DATEINAME> und <REST API LINK> als Ersatz für die jeweiligen Platzhalter eingefügt werden.

Die JSON-Daten für den POST-Request müssen zuvor in einer Datei gespeichert werden. Hier ein JSON-Datenbeispiel, um in einem Datenprojekt ein neues Datenobjekt TEMP_NEW mit dem neuen Daten-Item T_NEW zu erzeugen (TEMP_NEW und T_NEW bilden die neuen Ressourcen):

Code:
{"do":[{"name":"TEMP_NEW","item":[{"name":"T_NEW"}]}]}


Der Name der Datei mit den JSON-Daten ersetzt den Platzhalter <DATEINAME> in der cURL-Kommandozeile mit dem HTTP-POST-Request.

Durch diese REST-CREATE-Operation ergibt sich nun folgender Inhalt für das eingangs vorgestellte Datenprojekt:

Code:
01: {
02:     "do": [
03:        {
04:             "id": 10,
05:             "name": "TEMP",
06:             "desc": "Temperaturfuehler",
07:             "property": {},
08:             "item": [
09:                 {
10:                     "id": 49,
11:                     "name": "T_SSV",
12:                     "data": [
13:                         1420521213,
14:                         "21.5"
15:                     ],
16:                     "type": "GAUGE",
17:                     "desc": "Temperatur Demo SSV",
18:                     "property": {
19:                         "unit": "C"
20:                     }
21:                },
22:                 {
23:                     "id": 50,
24:                     "name": "T_SC",
25:                     "data": [
26:                         1420497521,
27:                         "32.1"
28:                     ],
29:                     "type": "GAUGE",
30:                     "desc": "Temperatur Demo SC",
31:                     "property": {
32:                         "unit": "C"
33:                     }
34:                 }
35:             ]
36:         },
37:         {
38:             "id": 14,
39:             "name": "TEMP_NEW",
40:             "desc": "",
41:             "property": {},
42:             "item": [
43:                 {
44:                     "id": 57,
45:                     "name": "T_NEW",
46:                     "data": [
47:                         1420527212,
48:                         ""
49:                     ],
50:                     "type": "STRING",
51:                     "desc": "",
52:                     "property": {}
53:                 }
54:             ]
55:         }
56:     ]
57: }


Für die REST-Operation DELETE (Ressource löschen per HTTP-POST-Request) ist folgende cURL-Kommandozeile erforderlich:

Code:
curl -X DELETE -H "X-RTDC-Auth-Key: <API KEY1>" -H "X-RTDC-Access-Key: <API KEY2>" "<REST API LINK>"


In diese cURL-Beispielkommandozeile muss zunächst ein gültiger <API KEY1>, <API KEY2> und <REST API LINK> als Ersatz für die jeweiligen Platzhalter eingefügt werden. Ein gültiger <REST API LINK> zum Löschen des zuvor erzeugten neuen Daten-Items T_NEW im Datenobjekt TEMP_NEW wäre:

Code:
http://<SERVER:PORT>/rtdc/v0/?do=TEMP_NEW&item=T_NEW


Mit dem folgenden <REST API LINK> lässt sich auch das Datenobjekt TEMP_NEW wieder löschen:

Code:
http://<SERVER:PORT>/rtdc/v0/?do=TEMP_NEW


Gruß KDW
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    SSV-Forum Forum Index >>> Real Time Data Channels (RTDC) All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

SSV Software Systems GmbH

Dünenweg 5
30419 Hannover

Fon: +49(0)511  ·  40 000-0
Fax: +49(0)511  ·  40 000-40

sales@ssv-embedded.de


Impressum    ·    Datenschutz    ·    AGB

© 2023 SSV SOFTWARE SYSTEMS GmbH. Alle Rechte vorbehalten.

ISO 9001:2015