TOP
SSV SOFTWARE SYSTEMS REGISTER  REGISTER
Log in to check your private messages  Log in to check your private messages
START FAQ SEARCH MITGLIEDER PROFILE  Log in 
SSV-Forum
Cloud REST APIs …

 
Post new topic   Reply to topic    SSV-Forum Forum Index >>> eSOM/3517
<<< Previous topic - Next topic >>>  
Display posts from previous:   
Author Message
kdw



Joined: 05 May 2006
Posts: 1485

PostPosted: 04.10.2014, 19:59    Post subject: Cloud REST APIs … Reply with quote

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
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    SSV-Forum Forum Index >>> eSOM/3517 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

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

© 2024 SSV SOFTWARE SYSTEMS GmbH. Alle Rechte vorbehalten.

ISO 9001:2015