MobiLec-Webservice¶
Für automatische Abfragen, Importe oder Exporte stellt MobiLec einen Webservice mit dokumentierter Schnittstelle zur Verfügung. Es sind zurzeit nur die beschriebenen Abfragemöglichkeiten implementiert. Diese kann beliebige erweitert werden. Dabei wird Vesucht die Kompatibilität mit der ursprünglichen beschiebenen Schnittstelle nicht zu zerstören.
Prinzipielle Funktionsweise¶
Durch die hohe Anzahl an evtl. anfallenden Datensätzen und den dadurch steigenden Netzwerkverkehr, die bei bestimmten Funktionsaufrufen auftreten könnten, können diese nur mit einem entsprechenden Filter aufgerufen werden.
Voraussetzungen¶
Für die Datenabfrage wird eine HTTP-Autentifizierung durchgeführt, mit dem sich der Benutzer gegenüber dem MobiLec-Webservice als Benutzer mit Login-Name und Passwort authentifizieren muss. Als Authentifizierungs-Verfahren wir die Basic Authentication eingesetzt. Die HTTP-Kommunikation mit MobiLec erfolgt ausnahmslos über eine Secure-Socket-Layer-Verschlüsselung kurz SSL. Dadurch ist die nötige Sicherheit bei Datenaustausch von Anmeldeinformationen, sowie MobiLec-Daten gewährleistet. Der Zugriff auf die MobiLec-Daten über den Webservice ist nur möglich, wenn die entsprechenden Nutzungsrechte eingerichtet sind.
Datenstruktur¶
Die durch MobiLec verwalteten Daten besitzen eine hohe Anzahl an Integritätsbedingungen untereinander. Dadurch ist eine Konsistenz der Datenbank gewährleistet. Diese Strukturen durch einen WebService zugänglich zu machen würde es erfordern, ein genaues Abbild des Datenmodels auf Konsumenten-Seite zu erzeugen. Durch die andauernde Entwicklung an dem MobiLec-Datenmodell müssten zusätzliche Anpassungen und Erweiterungen an dem WebService-Anwender erfolgen. Dies macht es notwendig, die Daten in einem vereinfachten Datenmodell zu veröffentlichen. Diese Datenstruktur enspricht weitesgehend der Tabellenstruktur des SQL Servers. Der hierasche Aufbau wird über Indexe hergestellt.
Datenaustausch¶
Aufbau einer Webservice Anfrage¶
Webservices Anfragen benötigen in der Regel mindestens eine Query zur Reduzierung der zu übertragenen Datenmenge. Zusätzliche Queries können zur Filterung der Daten eingesetzt werden.
URL-Aufbau: BasisURL/Pfad?query1[&query2][&query3] …
Bei Webservice Anfragen mit überschaubarer Datenmenge sind Queries optional. Ohne Query liefert die Webservice Anfrage alle Datensätze aus der MobiLec Datenbanktabelle.
URL Aufbau: BasisURL/Pfad[?query1][&query2] …
Beispiel Parameter:
BasisUrl:
https://www.mobilec.de/webservice
Pfad: z.B.: company.aspx
Query: z.B.: index_equals=1
Die wichtigsten Query-Parameter¶
index_equals: prüft einen Index (Integer) Wert auf Gleichheit
name_equals: prüft ob der Name gleich der Zeichenkette (String) ist
name_contains: prüft ob im Namen die Zeichenkette enthalten ist
name_startswith: prüft ob der Name mit der Zeichenkette beginnt
date_after: prüft ob das Datum nach einem bestimmten Zeitpunkt war
date_before: prüft ob das Datum vor einem bestimmten Zeitpunkt war
URL Encoding für Query-Werte¶
Für die Übergabe von Werten wird URL Encoding verwendet.
ASCII | Encoding |
---|---|
space | %20 |
& | %26 |
Beispiel: "Wurm GmbH & Co KG" -> "Wurm%20GmbH%20%26%20Co%20KG"
Abfrage:
https://www.mobilec.de/webservice/companyjsonv1.aspx?name_startswith=Wurm%20GmbH%20%26%20Co%20KG
liefert die Webantwort:
{"data":[{"Index":1,"Name":"Wurm GmbH & Co KG"}],"error":""}
zeitliche Eingrenzung: nach 19.04.2016 12:33:40 und vor 19.04.2016 12:33:41
Abfrage:
liefert die Webantwort:
{"data":[{"Index":85058,"UserIndex":360,"UnitIndex":5869,"MovementReasonIndex":7,"OperatorIndex":14,"RefrigerantIndex":1,"FillAmount":100,"DateString":"19.04.2016 12:33:40"}],"error":""}
Datenformat¶
Für die Datenrückgabe wird das Json Format verwendet.
Datenrückgabe ohne Fehler:
{"data":[{"Index":1, … }, {"Index":2, … }, …],"error":""}
Keine Daten gefunden:
{"data":[],"error":""}
Fehler aufgetreten:
{"data":[],"error":"index_equals has invalid value: s"}