Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core für Entwickler > Schnittstelle | REST-API
Die Basis-Services sind die klassische REST-Schnittstelle von agorum core unter /api/rest. Mit ihnen suchen, lesen, erstellen, ändern und löschen Sie Objekte, laden Inhalte herunter und hoch und verwalten unter anderem Benutzer, Gruppen, ACLs, die MetaDB, Notizen und E-Mails.
Alle Services sind in einer Postman-Collection beschrieben, die Sie in Postman importieren und direkt ausprobieren können.
Tipp: Für die meisten Anbindungen ist die agorum core High-level API der einfachere Einstieg. Verwenden Sie die Basis-Services für Aufgaben, die die High-level API nicht abdeckt, etwa die MetaDB, Benutzer und Gruppen, das Auflisten von ACLs, Notizen, E-Mails, DataHandler oder das Aus- und Einchecken von Dokumenten.
Die Collection enthält alle Basis-Services mit Beispielwerten und einer Beschreibung jedes Parameters: agorum core REST API - basic services (Postman-Collection)
Gehen Sie wie folgt vor, um die Collection in Postman zu verwenden:
https://mein-server.example.com.Alle Services liegen unter diesem Basispfad:
https://<agorum-core-server>/api/rest/...
Die Services antworten standardmäßig im Format XML. Um JSON zu erhalten, haben Sie zwei Möglichkeiten:
Accept: application/json. Die Postman-Collection tut das bei jeder Anfrage..json an den Pfad, etwa /api/rest/object.json.| Verfahren | Beschreibung |
|---|---|
| HTTP Basic | Benutzername und Kennwort werden bei jeder Anfrage mitgeschickt. Jede Anfrage meldet sich einzeln an. Das ist die Voreinstellung der Postman-Collection. |
| Session | POST /session meldet einen Benutzer an und liefert eine sessionId. Diese übergeben Sie bei den folgenden Aufrufen im Parameter sessionId. Nach zehn Minuten ohne Aufruf beendet das System die Session. DELETE /session meldet ab.Statt mit Benutzername und Kennwort können Sie sich auch mit einem Token anmelden, das ein Administrator mit POST /session/token erzeugt, siehe API Session Login über temporäres Token. |
| Bearer (JWT) | Ein JWT wird im Header Authorization: Bearer <Token> mitgeschickt. Das Token erzeugen Sie über Administration > Werkzeuge > JWT-Generator, siehe JWT-Generator. |
Hinweis: Transaktionen funktionieren nur mit einer Session. Eine Transaktion gehört zur Server-Session. Bei HTTP Basic öffnet jede Anfrage eine neue Session, sodass eine in einer Anfrage gestartete Transaktion in der nächsten nicht mehr existiert.
Die meisten Services teilen sich wenige Endpunkte. Welcher Service ausgeführt wird, bestimmt ein Parameter und nicht der Pfad:
| Aktion | Aufruf |
|---|---|
| Lesen | GET /object mit provider=... oder GET /object/{id} mit handler=... |
| Erstellen | POST /object mit handler=... |
| Ändern | PUT /object/{id} mit updatehandler=... |
| Löschen | DELETE /object/{id} mit deletehandler=... |
Die Anfragen der Postman-Collection sind nach diesem Wert benannt, etwa object (search) für GET /object?provider=search.
Parameter, die eine Struktur erwarten – data, parameters, sort und filter – übergeben Sie als JSON in einem einzelnen Formularfeld oder Query-Parameter. Mit dem wiederholbaren Parameter properties legen Sie fest, welche Eigenschaften die Antwort enthält. Lesende Services unterstützen außerdem start und limit zum Blättern.
Wo eine ID erwartet wird, sind diese Formen möglich:
| Form | Beispiel |
|---|---|
| Objekt-ID | 123456 |
| Objekt-Knoten-ID (für Bäume) | 9999|654321|123456 |
| Pfad | /agorum/roi/Files |
| UUID | uuid://1111-2222-3333-4444 |
| Remote-ID | remoteid://remoteIdent;remoteId |
| Benutzer | user://roi |
| Gruppe | group://Demo |
Hinweis: Enthält eine ID / oder :// und steht sie im Pfad der URL, müssen Sie sie URL-codiert angeben, etwa user%3A%2F%2Froi oder %2Fagorum%2Froi%2FFiles. Postman reicht Pfadvariablen unverändert weiter. In Query-Parametern codiert Postman selbst.
Jede Antwort enthält die Felder success, errorClass, errorCode, errorKey und message. Lesende Services liefern zusätzlich total, data und meta, Services für ein einzelnes Objekt nur data.
| errorClass | errorCode | Bedeutung |
|---|---|---|
| 1 | 1 | Anmeldung erforderlich |
| 1 | 2 | Zugriff verweigert (errorKey 1: Kontingent erreicht) |
| 2 | 1 | Objekt nicht gefunden |
| 2 | 2 | Objekt hat den falschen Typ |
| 2 | 3 | Parameter fehlt |
| 2 | 4 | Ungültiger Parameter |
| 2 | 5 | Konflikt |
| 2 | 6 | Zeitüberschreitung |
| 3 | 1 | Interner Serverfehler |
| 3 | 2 | Nicht implementiert |
| 3 | 3 | Unbekannter Fehler |
| 3 | 4 | Bad Gateway |
| 3 | 5 | Gateway Timeout |
Die Tabellen folgen der Ordnerstruktur der Postman-Collection. Die vollständige Beschreibung aller Parameter finden Sie in der Collection.
| Methode und Pfad | Beschreibung |
|---|---|
POST /session |
Meldet einen Benutzer an und liefert eine sessionId. |
DELETE /session |
Beendet die Session. |
POST /session/transaction |
Startet eine Transaktion und liefert eine transactionId. Aufrufe mit dieser ID werden sofort und in der Reihenfolge ihres Eingangs ausgeführt. Ihre Änderungen werden erst mit dem Abschluss der Transaktion dauerhaft oder beim Verwerfen zurückgenommen. |
DELETE /session/transaction/{id} |
Schließt eine Transaktion ab (rollback=false) oder verwirft sie (rollback=true). |
POST /session/token |
Erzeugt als Administrator ein Token für einen Benutzer (doAs), mit dem man sich an POST /session anmelden kann. |
| Aufruf | Beschreibung |
|---|---|
GET /object?provider=search |
Sucht Objekte über die Volltextsuche, siehe Suchsyntax in Solr verwenden. |
GET /object?provider=searchcached |
Sucht wie oben und hält das Ergebnis für weitere Seiten im Arbeitsspeicher. parameters muss cacheid (klein geschrieben) und duration (in ms) enthalten. |
GET /object?provider=folder |
Listet den Inhalt eines Ordners, wahlweise flach oder als Autovervollständigung. |
GET /object/tree/{source} |
Liefert einen Ordner mit seinen Unterobjekten als Baum bis zur angegebenen Tiefe. |
GET /object/{id} |
Liefert die Eigenschaften eines Objekts, mit handler=folder auch Ordnerinformationen. |
GET /object?provider=parent |
Liefert die übergeordneten Ordner eines Objekts. |
GET /object?provider=history |
Liefert die älteren Versionen eines Objekts. |
GET /object?provider=relation |
Liefert die Relationen eines Objekts zu einer Relationsklasse. |
GET /object?provider=contenthash |
Findet Objekte anhand eines Hash-Werts ihres Inhalts. |
GET /object?provider=contenthashqueue |
Listet Objekte, deren Hash-Wert noch berechnet wird. |
Achtung: Geben Sie bei provider=relation die Relationsklasse so genau wie möglich an. Der Service lädt alle Relationen des Objekts, bevor er start und limit anwendet. Eine allgemeine Klasse wie RelationObject kann bei stark verknüpften Objekten den Arbeitsspeicher des Servers erschöpfen.
| Aufruf | Beschreibung |
|---|---|
POST /object mit handler=folder |
Erstellt einen Ordner. |
POST /object mit handler=object |
Erstellt ein Objekt in einem Ordner, etwa ein FileObject. |
PUT /object/{id} mit updatehandler=object |
Ändert Eigenschaften eines Objekts. |
DELETE /object/{id} mit deletehandler=object |
Löscht ein Objekt oder verschiebt es mit {"trash":true} in den Papierkorb. |
| Aufruf | Beschreibung |
|---|---|
GET /object/download/{id} |
Lädt den Inhalt eines Objekts herunter. Ein Objekt ohne Inhalt, etwa ein Ordner, wird als ZIP-Datei seiner Inhalte geliefert. |
GET /object/download/{id}/{format} |
Lädt den Inhalt umgewandelt herunter, etwa .../pdf. Welche Formate möglich sind, hängt von den installierten Konvertern ab. |
GET /object/download?ids=...&id=... |
Lädt mehrere Objekte als eine ZIP-Datei herunter. |
GET /object/embed/{id}GET /object/embed/{id}/{format} |
Liefert den Inhalt zur Anzeige im Browser statt zum Download. |
POST /object/upload |
Lädt eine Datei in einen Zielordner hoch (Formularfeld body). |
POST /object/upload/{id} |
Lädt eine Datei als neue Version eines vorhandenen Objekts hoch. |
POST /object/copyContent/{id} |
Kopiert den Inhalt eines Objekts in ein anderes Objekt. |
Hinweis: object/download verwendet ohne Anmeldung den Gast-Zugang, sodass öffentlich lesbare Objekte ohne Anmeldung abrufbar sind. Ohne Berechtigung antwortet der Service dann mit 403. object/embed hat keinen Gast-Zugang und antwortet ohne Anmeldung mit 401. Weitere Beispiele für diese Aufrufe finden Sie unter Auf Dokumente per Links extern zugreifen.
| Aufruf | Beschreibung |
|---|---|
POST /object/checkout/{id} |
Checkt ein Objekt aus. Dabei entsteht eine private Arbeitskopie. |
POST /object/checkin/{id} |
Checkt das Objekt oder die Arbeitskopie wieder ein und erzeugt eine neue Version. |
POST /object/cancelCheckout/{id} |
Bricht das Auschecken ab und löscht die Arbeitskopie. |
| Aufruf | Beschreibung |
|---|---|
POST /object/move/{id} |
Verschiebt Objekte in einen oder mehrere Zielordner. |
POST /object/copy/{id} |
Kopiert Objekte in einen oder mehrere Zielordner. |
POST /object/link/{id} |
Verknüpft ein Objekt mit einem oder mehreren Ordnern. |
POST /object/relate/{id} |
Erstellt Relationen zwischen einem Objekt und weiteren Objekten. |
POST /object/unrelate/{id} |
Entfernt solche Relationen wieder. |
| Aufruf | Beschreibung |
|---|---|
GET /object?provider=trashcan |
Listet gelöschte Objekte im Papierkorb des Servers. Fragen Sie uuid als Eigenschaft mit ab – das Wiederherstellen benötigt sie. |
POST /object/restore2/{id} |
Stellt ein Objekt am ursprünglichen Ort oder in einem Zielordner wieder her. Konflikte lösen Sie mit rename oder merge. |
POST /object/restore/{id} |
Ältere Variante, abgelöst durch restore2. |
Hinweis: Geben Sie den Papierkorb-Eintrag beim Wiederherstellen als uuid://... an. Die numerische ID aus dem Papierkorb kann nicht aufgelöst werden.
| Aufruf | Beschreibung |
|---|---|
GET /object/{id}?handler=user |
Liefert Informationen über einen Benutzer. |
POST /object mit handler=user |
Legt einen Benutzer an. Benutzername und eine E-Mail-Adresse sind Pflicht. |
PUT /object/{id} mit updatehandler=user |
Ändert die Daten eines Benutzers. |
GET /object?provider=usergroupsearch |
Sucht Benutzer und Gruppen. |
GET /object?provider=groupmember |
Listet die Mitglieder einer Gruppe. |
GET /object?provider=appuserprofile |
Liefert die Anwendungseinstellungen des angemeldeten Benutzers. |
GET /object/{id}?handler=appuserprofile |
Liefert eine einzelne Anwendungseinstellung. |
POST /object mit handler=appuserprofile |
Legt eine Anwendungseinstellung an oder aktualisiert sie. |
| Aufruf | Beschreibung |
|---|---|
GET /object?provider=acl |
Listet ACLs. |
GET /object?provider=metadb |
Liefert die Elemente eines MetaDB-Bundles. query wird nicht ausgewertet. |
POST /object mit handler=metadb |
Legt einen MetaDB-Eintrag an. Einen Service zum Löschen gibt es nicht. |
GET /object?provider=quicksearch |
Liefert die Konfiguration gespeicherter Schnellsuchen. |
GET /object?provider=area |
Liefert die Konfiguration gespeicherter Bereiche. |
GET /object?provider=charset |
Listet die vom Server unterstützten Zeichensätze. |
| Aufruf | Beschreibung |
|---|---|
GET /object?provider=note |
Listet die Notizen eines Objekts. |
POST /object mit handler=note |
Erstellt eine Notiz an einem Objekt. |
PUT /object/{id} mit updatehandler=note |
Ändert eine Notiz. |
POST /object mit handler=mail |
Erstellt eine E-Mail im Postausgang oder als Entwurf. |
GET /object?provider=mailrelation |
Liefert die Relationen einer E-Mail. |
GET /object?provider=mailattachment |
Liefert die Anhänge einer E-Mail. |
GET /object?provider=mailaddresssearch |
Sucht E-Mail-Adressen, etwa von Benutzern, Kontakten und Verteilerlisten. |
GET /object?provider=mailsenderaddress |
Liefert die Absenderadressen des angemeldeten Benutzers. |
| Aufruf | Beschreibung |
|---|---|
GET /object?provider=preview |
Liefert je Seite der Vorschau die Abmessungen. Setzt eine vorhandene Master-Vorschau voraus. |
GET /object/preview/{id}.jpg?page=1&size=400 |
Lädt das Vorschaubild einer Seite. Im Pfad steht die ID des Objekts mit der Endung .jpg, .jpeg oder .png; die Seite wählen Sie mit page. |
Über GET /object?provider=data liefern die Services Daten einer in der MetaDB konfigurierten Quelle. Den MetaDB-Pfad der Konfiguration geben Sie in source an. Welcher DataHandler läuft, bestimmt der Eintrag Class dieses Bundles:
| Class | Beschreibung |
|---|---|
agorum.api.object.data.JdbcDataHandler |
Daten aus einer SQL-Abfrage |
agorum.api.object.data.CsvDataHandler |
Zeilen aus einer CSV-Datei |
agorum.api.object.data.SearchEngineTermsDataHandler |
Begriffe aus einem Feld der Suchmaschine |
agorum.api.object.data.UserDataHandler |
Benutzer und ihre IDs |
Die Einträge, die der jeweilige DataHandler in der MetaDB erwartet, sind in der Postman-Collection beschrieben.
| Aufruf | Beschreibung |
|---|---|
GET /object?provider=genericmultiqueue |
Listet die Einträge einer Queue. |
POST /genericMultiQueue/add/{id} |
Fügt ein Objekt zu einer Queue hinzu. |
DELETE /genericMultiQueue/remove/{id} |
Entfernt ein Objekt aus einer Queue. |
Weitere Informationen finden Sie unter Ergänzende Informationen für die Verwendung der Generic MultiQueue.