TOP
SSV Software Systems Registrieren  Registrieren
Einloggen, um private Nachrichten zu lesen  Einloggen, um private Nachrichten zu lesen
Startseite FAQ Suchen Mitglieder Profil  Login 
SSV Support-Forum
RTDC mit cURL …

 
Neues Thema eröffnen   Neue Antwort erstellen    SSV-Forum Foren-Übersicht >>> Real Time Data Channels (RTDC)
<<< Vorheriges Thema - Nächstes Thema >>>  
Beiträge der letzten Zeit anzeigen:   
Autor Nachricht
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1442

BeitragVerfasst am: 30.12.2014, 13:24    Titel: RTDC mit cURL … Antworten mit Zitat

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


Zuletzt bearbeitet von kdw am 08.01.2015, 19:17, insgesamt 3-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1442

BeitragVerfasst am: 02.01.2015, 15:59    Titel: Daten-Update … Antworten mit Zitat

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


Zuletzt bearbeitet von kdw am 06.01.2015, 08:16, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1442

BeitragVerfasst am: 06.01.2015, 08:12    Titel: CREATE und DELETE … Antworten mit Zitat

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
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    SSV-Forum Foren-Übersicht >>> Real Time Data Channels (RTDC) Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht teilnehmen.

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

© 2022 SSV Software Systems GmbH. Alle Rechte vorbehalten.

ISO 9001:2015