Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Session:

Jeder Teilservice außer dem Login bis auf weniger Ausnahmen (z.B. Login) benötigt eine Session ID. Wird keine Session ID übergeben, bzw. ist die Session ID ungültig, gibt der Service einen Fehler mit dem HTTP Status 401 (Unauthorized) zurück. Die Session ID kann entweder als Standard-Cookie oder als Http-Header-Parameter beim Aufruf des REST-Services übergeben werden. Der Key muss "sessionid" lauten.

...

  • Login (Path: /login, Method: POST, Return: String, ohne Session)
    Erwartet die Login-Daten per JSON (s. JSON-Spezifikationen), authentifiziert sich damit am Nuclos-Server und gibt eine SessionID als String zurück. Die Session ID benötig wird um alle anderen andere Teilservices zu verwenden. Schlägt der Login fehl, wird ein Fehler mit dem HTTP Status 401 (Unauthorized) zurückgeworfen.

  • Logout (Path: /logout, Method: GET)
    Invalidiert die bestehende Session ID. Diese Methode gibt den HTTP Status 200 (OK), wenn die Session ID gültig war.

  • Entities (Path: /meta/entities, Method: GET, Return: JSON-Array "Entity")
    Liefert alle Entitäten zurück, auf die der Benutzer lesend zugreifen kann.

  • Fields (Path: /meta/fields/{uid}, Method: GET, Return: JSON-Array "Field")
    Gibt die Felder und deren Metadaten der Entität {uid} zurück.

  • LoadData (Path: /data/load/{uid}, Methods: GET/POST, Return: JSONObject "Result")
    Mit GET werden die ersten 1000 Datensätze der Entität {uid} geladen. Mit POST kann ein Filter (s. JSON-Spezifikationen) übergeben werden.

  • GetData (Path:/data/get/{uid}/{pk}, Method: GET, Return: Return: JSONObject "Result")
    Es wird der Datensatz der Entität {uid} mit dem Primärschlüssel {pk} zurückgegeben, falls er existiert.

  • Search (Path: /data/search/{text}, Method: GET, Return: JSON-Array "SearchResult")
    Durchsucht die Entitäten nach dem Suchtext {text} mit Hilfe des Lucene-Indexes.

  • Count (Path: /data/count/{uid}, Method: GET/POST, Return: Number)
    Zählt die Anzahl der Datensätze der Entität {uid}. Mit POST kann ein Filter (s. JSON-Spezifikationen) übergeben werden.

  • Update (Path: /data/update, Method: PUT, Return: JSONObject "ValueObject")
    Erwartet ein JSONObject "ValueObject" von einem existierenden Datensatz. Auf diesen wird ein UPDATE mit den übergebenen Werten ausgeführt. Falls kein Fehler auftritt, wird der Datensatz direkt aus der Datenbank nach dem UPDATE zurückgegeben.

  • Insert (Path: /data/insert, Method: POST, Return: JSONObject "ValueObject")
    Erwartet ein JSONObject "ValueObject" von einem neuem Datensatz. Dieser wird mit INSERT in die Datenbank geschrieben. Falls kein Fehler auftritt, wird der Datensatz direkt aus der Datenbank nach dem INSERT zurückgegeben.

  • Delete (Path: /data/delete/{uid}/{pk}, Method: DELETE)
    Löscht einen Datensatz mit dem Primary Key {pk} aus der Entität {uid}. Sobald der Datensatz ordnungsgemäß entfernt wurde, wird ein HTTP Status 200 (OK) zurückgegeben.

  • ReferenceList (Path: /data/referencelist/{field}, Method: GET, Return: JSON-Array "ReferenceValue")
    Erstellt eine Liste von Reference-Werten zum Feld {field}. Momentan auf Maximal 1000 Einträge beschränkt.

  • SubEntities (Path: /meta/subentities/{uid}, Method: GET, Return: JSON-Array "SubEntity")
    Alle abhängigen Sub-Entitäten (Unterformulare) zur Entität {uid} werden mit dem jeweiligen Referenzfeld erzeugt.

  • SubLoad (Path: /data/subload/{field}/{fk}, Method: GET, Return: JSONObject "Result")
    Lädt die Unterformulardatan einer Sub-Entität mit dem Fremdschlüssel {fk} im Feld {field}. Die Sub-Entität ist durch das referierende Feld {field} gegeben.

  • Menu (Path: /meta/menu, Method: GET, Return: JSONArray "Menu")
    Das Menü in der Sprache des angemeldet Benutzers. Hinweis: Momentan werden nur Menüeinträge für Entitäten bis zum Level 1 bereitgestellt.

  • EntityIcon (Path: /entityicon/{uid}.png, Method: GET, Return: "image/png", ohne Session)
    Das Icon einer Entität als PNG-Image. Die Datei-Endung ".png" kann auch optional weggelassen werden.

JSON-Spezifikationen:

  • Login ("username": String, "password": String, "locale": String (optional))
    Beispiel für ein gültiges Login-JSONObject:

    Codeblock
    var login = {
    	"username": "user123", 
    	"password": "passXYZ", 
    	"locale": "de_DE"};

...