Version: 1.0.0
Copyright: © 2016 u-werk GbR
Aktualisierungsdatum: 01.10.2016
Die REST-Schnittstelle antwortet in der Kodierung UTF-8.
Die REST-Schnittstelle beantwortet Anfragen in den Formaten XML, JSON oder JavaScript.
XML ist das Standardausgabeformat der REST-Schnittstelle. Die Schnittstelle antwortet in Content-Type: application/xml; charset=utf-8
.
Eine Antwort in JSON kann für jede Anfrage an die REST-Schnittstelle über den standardisierten HTTP Accept-Header oder alternativ über den HTTP/GET Parameter format und die Wertzuweisung application/json angefordert werden. Geantwortet
wird hieraufhin mit Content-Type: application/json; charset=utf-8
.
Die REST-Schnittstelle gibt für in JSON with padding (JSONP) angeforderte Antworten JavaScript zurück. Die Anforderung erfolgt über den HTTP/GET Parameter callback in dem der gewünschte Methodenname eingetragen wird.
Beantwortet wird diese Anfrage mit Content-Type: application/javascript; charset=utf-8
.
Neben Cross-Domain HTTP/GET Anfragen mittels JSONP bietet die REST-Schnittstelle Cross-Origin Resource Sharing (CORS) an. Beispiele zur Anwendung von Cross-Domain Anfragen in JavaScript sind detailliert im jeweiligen Abschnitt dokumentiert.
Die Nutzer-Authentisierung der REST-Schnittstelle erfolgt einheitlich für die Methoden GET, POST, PUT und DELETE. Zusätzlich zur jeweiligen Anfrage ist hierfür der Header X-Auth-Token erforderlich.
Der Zugriffsschlüssel zur Verwendung in X-Auth-Token wird bei erfolgreicher Anmeldung des Nutzers übergeben (s.h. Nutzer anmelden). Dieser Zugriffsschlüssel ist für 24 Stunden gültig. Danach ist eine Authentifizierung mit diesem Schlüssel nicht mehr möglich und eine weitere Anmeldung notwendig.
GET /api/v1/todo HTTP/1.1 Host: localhost:5000 X-Auth-Token: pndVpURTRaREkz
curl -H "X-Auth-Token: pndVpURTRaREkz" -X GET http://localhost:5000/api/v1/todo
jQuery.ajax({type: 'GET', url: 'http://localhost:5000/api/v1/todo', beforeSend: function(xhr, settings) { xhr.setRequestHeader('X-Auth-Token', 'pndVpURTRaREkz'); }, dataType: 'jsonp', success: function(contents) { … }});
import urllib2 request = urllib2.Request("http://localhost:5000/api/v1/todo", headers={"X-Auth-Token": "pndVpURTRaREkz"}) contents = urllib2.urlopen(request).read()
$contents = file_get_contents( 'http://localhost:5000/api/v1/todo', false, stream_context_create( array( 'http' => array( 'method' => 'GET', 'header' => Array('X-Auth-Token: pndVpURTRaREkz') ))));
System.Net.WebClient request = new System.Net.WebClient(); request.Headers.Add( "X-Auth-Token", "pndVpURTRaREkz" ); var contents = request.DownloadString( "http://localhost:5000/api/v1/todo" );
...
Schnittstelle: http://localhost:5000/api/v1/login Methoden:
http://localhost:5000/api/v1/login?format=application/json&loginname=mustermann&password=d68d278ebf67570386e222f79a65bd1a5979f61bf
{"resultset":[{"name":"Hans Mustermann","id":3,"token":"pndVpURTRaREkz","loginname":"mustermann"}]}
http://localhost:5000/api/v1/login?loginname=mustermann&password=d68d278ebf67570386e222f79a65bd1a5979f61bf
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xml><resultset><row><name>Hans Mustermann</name><id>3</id><token>pndVpURTRaREkz</token><loginname>mustermann</loginname></row></resultset></xml>
jQuery.ajax({ statusCode : { 200 : function( data ) { if( data && data.id ) { /* ... Login OK ... */ } else { /* ... Login fehlerhaft ... */ }}}, type: 'GET', url: 'http://localhost:5000/api/v1/login?', data : { loginname: 'mustermann', password: 'd68d278ebf67570386e222f79a65bd1a5979f61bf' }, dataType : 'jsonp', error : function( xmlhttp ){ /* ... Verbindung fehlerhaft ... */ }});
Zur geforderten Kodierung eines Passwortes in SHA-1 mittels JavaScript bieten sich die "JavaScript implementations of standard and secure cryptographic algorithms" an. (Linkverweis: https://code.google.com/p/crypto-js/#SHA-1)
Schnittstelle: http://127.0.0.1:5000/api/v1/todo Methoden:
Keine Einträge vorhanden.
Keine Einträge vorhanden.
u-werk Umweltinformationsdienste GbR
www.u-werk.net, info@u-werk.net