Web-Service API - Grundlagen
Fast alle Anfragen über den Web-Service erfordern ein gültiges Ticket. Dieses erhalten Sie über den Aufruf der „Login“ Methode.
Über das Ticket weiß der Web-Service um welchen Benutzer es sich handelt. Wird ein Ticket 30 Minuten lang nicht verwendet, wird es automatisch gelöscht, ab da muss sich der Client am Web-Service neu anmelden. Wird eine Methode mit dem Ticket aufgerufen, wird der Timer auf 30 Minuten zurückgesetzt.
Methodenaufruf
Alle Web-Service API Methoden werden mit http/POST aufgerufen.
Struktur
Jede Web-Service API Methode hat die gleiche Basisstruktur. Als Body wird ein Objekt von Typ Request<T> übergeben. Zurück liefert diese ein Objekt von Typ Response<IList<T>>. Manche Web-Service Methoden liefern immer nur ein Element zurück (z.B. die Login Methode). Andere liefern eine Liste zurück (z.B. GetAccountTypes).
Beispielrequest Login Methode
{"Ticket": "Text","TrimResponse": 0,"Data": {"AppVersion": "Text","Application": "Text","Device": "Text","LoginKind": 0,"Password": "Text","Username": "Text"}}
In dem Beispiel ist "Data" das generische Objekt T von Request.
Beispielresponse Login Methode
{"Message": "Text","MessageCode": 123,"Status": 0,"Result": ["Text"]}
In dem Beispiel ist "Result" das generische Objekt von der IList<T>. Die Login Methode z.B. liefert einen string zurück. IList<string>.
Datumsformat
Wir verwenden für die Konvertierung den DataContractJsonSerializer. Dieser verwendet fürs Datumsformat einen Unix Epoch Timestamp (mit millisekunden und Zeitzone).
Methoden mit Paging Unterstützung
Die Web-Service API besitzt Methoden die Paging unterstützen. In der Regel endet der Methodenname mit WithPaging oder ThroughPaging. Bei diesen Methoden muss beim Request Page und EntriesPerPage gesetzt werden.
Wenn Sie alle Ergebnisse zurück haben möchten, ist eine Möglichkeit Page = 1 und EntriesPerPage = int.MaxValue zu setzen.
Wenn Paging gewünscht ist. Übergibt man beim ersten Aufruf Page = 1 und EntriesPerPage = [gewünschte Anzahl an Elementen pro Seite]. Die Methode liefert Ihnen nicht nur die Treffer zurück. Zusätzlich erhalten Sie die Anzahl an verfügbaren Seiten und die gesamte Anzahl an Treffern für die Suche.
{"Ticket": "Text","TrimResponse": 0,"Data": {"EntriesPerPage": 20,"Filter": {"IsActive": true,"SearchText": "Text"},"Page": 1}}