<<< Previous topic - Next topic >>> |
|
Author |
Message |
kdw
Joined: 05 May 2006 Posts: 1485
|
Posted: 30.12.2014, 13:24 Post subject: RTDC mit cURL … |
|
|
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 |
|
|
kdw
Joined: 05 May 2006 Posts: 1485
|
Posted: 02.01.2015, 15:59 Post subject: Daten-Update … |
|
|
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 |
|
|
kdw
Joined: 05 May 2006 Posts: 1485
|
Posted: 06.01.2015, 08:12 Post subject: CREATE und DELETE … |
|
|
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 |
|
|
|
|
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
|
|