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
Cloud REST APIs …

 
Neues Thema eröffnen   Neue Antwort erstellen    SSV-Forum Foren-Übersicht >>> eSOM/3517
<<< Vorheriges Thema - Nächstes Thema >>>  
Beiträge der letzten Zeit anzeigen:   
Autor Nachricht
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1183

BeitragVerfasst am: 04.10.2014, 19:59    Titel: Cloud REST APIs … Antworten mit Zitat

Hallo Forum.

Wenn Sie einen eSOM/3517 mit einer Cloud- bzw. IoT-Serviceplattform verbinden wollen, müssen Sie sich zunächst einmal das jeweilige API (Application Programming Interface) genau anschauen. Die meisten Plattformen bieten ein REST-API (REST = REpresentational State Transfer, siehe zum Beispiel http://www.restapitutorial.com/lessons/whatisrest.html#).

REST folgt dem Create-Read-Update-Delete-(CRUD)-Gedanken aus der Datenbankwelt. D. h., es gibt jeweils separate (API-) Funktionen, um ein Datenobjekt zu erzeugen, den aktuellen Wert zu lesen, einen neuen Wert zu schreiben und das Objekt wieder zu löschen. In einem REST-API werden die einzelnen CRUD-Funktionen durch HTTP-Request/Response-Paare realisiert. Hierzu zwei Beispiele:

Der folgende HTTP-POST-Request ermöglicht zum Beispiel einen Variablen-Update auf der EXOSITE-IoT-Plattform (http://exosite.com/). In diesem Fall wird in die Variable Tengine der neue Wert 12.34 geschrieben. Das EXOSITE-REST-API erfordert dafür einen HTTP-POST-Request. Beachten Sie bitte, dass innerhalb des EXOSITE-REST-API-HTTP-Requests ein API-Key als Zugriffsberechtigungsschlüssel erforderlich ist (siehe HTTP-Header-Element X-Exosite-CIK). Diesen Code erhält man durch die Registrierung auf der EXOSITE-IoT-Plattform.

Code:
POST /onep:v1/stack/alias HTTP/1.1\r\n
User-Agent: curl/7.37.0\r\n
Host: m2.exosite.com\r\n
X-Exosite-CIK: 88caf201140928b632a32c33a94762f93fb16438\r\n
Accept: application/x-www-form-urlencoded; charset=utf-8\r\n
Content-Length: 13\r\n
Content-Type: application/x-www-form-urlencoded\r\n
\r\n
Tengine=12.34


Der gesamte Request wurde auf einem PC mit cURL (http://curl.haxx.se/) erzeugt. Die Zeichenfolge „Tengine=12.34“ transportiert die Daten für den Update. Ist der Update erfolgreich, antwortet der EXOSITE-Server mit dem HTTP-Statuscode „204 No Content“:

Code:
HTTP/1.1 204 No Content\r\n
Date: Fri, 03 Oct 2014 04:58:37 GMT\r\n
Content-Length: 0\r\n
Connection: keep-alive\r\n
Server: nginx\r\n
\r\n


Ein zweites Beispiel zeigt den HTTP-Request für einen Variablen-Update mit dem SSV Real Time Data Channel (SSV/RTDC) API. Dieses API erfordert einen PUT-Request mit einem JSON-Objekt, um einen Werte-Update auszuführen. Im RTDC-REST-API sind zwei API-Key als Zugriffsberechtigungsschlüssel für eine Update-Operation erforderlich (siehe HTTP-Header-Elemente X-RTDC-Access-Key und X-RTDC-Auth-Key). Der X-RTDC-Auth-Key ist ein allgemeiner Zugriffsschlüssel, der in jedem einzelnen REST-Request erforderlich ist. Bei allen „Schreiboperation“ (Create, Update, Delete) ist zusätzlich ein X-RTDC-Access-Key als zweiter Schlüssel erforderlich.

Code:
PUT /rtdc/v0/ HTTP/1.1\r\n
Host: 192.168.0.54\r\n
Connection: keep-alive\r\n
Content-Length: 91\r\n
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64)\r\n
Cache-Control: no-cache\r\n
Origin: chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm\r\n
X-RTDC-Access-Key: ad698900-2546-11e3-95ef-e3081976e170\r\n
X-RTDC-Auth-Key: 2f3113d0-2796-11e3-87fb-c560cb0ca47b\r\n
Content-Type: application/json; charset=UTF-8\r\n
Accept: */*\r\n
Accept-Encoding: gzip,deflate,sdch\r\n
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4\r\n
\r\n
{"do": [{"name":"BAT1","item":[{"name":"SI_PowerL1","data":209.8}]}]}


Die Zeichenfolge

Code:
{"do": [{"name":"BAT1","item":[{"name":"SI_PowerL1","data":209.8}]}]}


ist ein RTDC-JSON-Objekt, um in dem Datenobjekt “BAT1” das Daten-Item „SI_PowerL1“ auf den neuen Wert „209.8“ zu setzen. Ist der Update erfolgreich, antwortet der RTDC-Server mit dem HTTP-Statuscode „200 OK“ und einem zusätzlichen JSON-Objekt:

Code:
HTTP/1.1 200 OK\r\n
Date: Mon, 29 Sep 2014 16:20:14 GMT\r\n
Server: Apache/2.2.22 (Debian)\r\n
X-Powered-By: PHP/5.4.4-14+deb7u14\r\n
Content-Length: 48\r\n
Keep-Alive: timeout=5, max=100\r\n
Connection: Keep-Alive\r\n
Content-Type: application/json\r\n
\r\n
{"status":{"code":0,"info":"Update successful"}}


Der PUT-Request für das RTDC-API wurde mit dem POSTMAN-Extension unter Chrome ausgeführt.

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 >>> eSOM/3517 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

Tel.: +49(0)511 / 40 000-0
Fax: +49(0)511 / 40 000-40

sales@ssv-embedded.de

© 2018 SSV Software Systems GmbH. Alle Rechte vorbehalten.

ISO 9001:2015