JSON REST API

Informationen effizient organisieren.
Mit der Dr.DOC Komplettlösung für revisionssichere Archivierung.


  Anfragen Preise berechnen Demo anfordern Mehr über Dr.DOC erfahren


JSON REST API

Diese API ist für die Verwendung aus Web Apps, Desktop Apps und Server Services konzipiert und bietet keine Benutzerinteraktion oder GUI.
Der HTTP(S) Response erfolgt als JSON Objekt. System-Eigenschaften (JSON Properties) wird ein $ vorangestellt (z.B. $id, $ref, ..).
Die API besteht aus drei Endpunkten:

  1. Benutzerverwaltung und Anmeldung
  2. Metadaten CRUD
  3. Document

Die JSON REST API verwendet das Cookie uid für die User Session (Anmeldung in Dr.DOC Archiven) und merkt sich die Standard-Benutzerverwaltung. Ansonsten kann die API stateless betrieben werden.

1.) Benutzerverwaltung und Anmeldung:

Die REST API für Metadaten ist über folgenden Pfad über HTTP/HTTPS zugänglich: /user.
Die Parameter werden im GET übergeben.

  • signin: Meldet den User in allen Benutzermanagern (siehe server.conf, [USER]) und zugriffsberechtigten Archiven an.
    • username
    • password
  • signout: Meldet den Benutzer aus alles Archiven ab.
  • status: gint ein JSON-kodiertes Status Objekt des angemeldeten User zurück.
Aktion GET Parameter
Anmelden
Meldet den User in allen Benutzermanagern (siehe server.conf, [USER]) und zugriffsberechtigten Archiven an.
  • action: signin
  • username
  • password
Abmelden
Zerstört die User-Session und meldet den Benutzer aus allen Archiven ab.
Beispiel: https://drdoc.com/user?action=signout
  • action: signout
Alle abmelden
Zerstört alle User-Sessions des Benutzers und meldet den Benutzer aus allen Archiven ab.
  • action: signout-all
Status holen
Gibt ein JSON-kodiertes Status Objekt des angemeldeten User zurück.
Beispiel: https://drdoc.com/user?action=status
  • action: status
User erstellen
  • action: create-user
  • username: <Benutzername>
  • password: <Passowort>
  • groups: <Liste von Gruppen, bei denen der User Mitglied werden soll mit ";" getrennt>
  • value:
    • anonymerBenutzer: 1|0
    • managerBerechtigung: 1|0
    • ..
Gruppe erstellen
  • action: create-group
  • group: <Name der Gruppe>
  • value:
    • besitzerGruppe: 1|0
    • berechtigungsGruppe: 1|0
    • wiedervorlageGruppe: 1|0
    • workflowGruppe: 1|0
Mitgliedschaft eines Benutzer oder Gruppe ("grantee") einer Gruppe ("group") hinzufügen
  • action: add-to-group
  • grantee: <Berechtigter/Group-Name>
  • group: <Group-Name>
Mitgliedschaft eines Benutzer oder Gruppe ("grantee") aus einer Gruppe ("group") entfernen
  • action: delete-from-group
  • grantee: <Berechtigter/Group-Name>
  • group: <Group-Name>
Gruppe löschen
  • action: delete-group
  • value: <Group-Name>
Benutzer/User löschen
  • action: delete-user
  • value: <Username>

2.) Metadaten CRUD:

Die REST API für Metadaten ist über folgenden Pfad über HTTP/HTTPS zugänglich: "/model/crud".
Die Request Parameter werden im POST übergeben. Hintergrund ist, dass Metadaten die maximal zulässige Länge des Query Strings übersteigen können.
Sollte kein POST Objekt, aber ein GET Objekt angegeben werden, wird das GET Objekt verwendet.
Der Response (JSON) hat folgende Struktur:

  • $ModelType (Dr.DOC Archiv)
  • Result
  • MetaSortTree (nur bei Sortierung)
  • HasArray
  • Count
  • CountTotal
  • HasError
  • Error
    • Message
    • InternalMessage

Als ID wird das eindeutige Systemfeld "Dokumet-Nr." gewählt.
Parameter, die in "[..]" eingefasst sind, sind optional.

Aktion POST Parameter
auth
Authentifizierung/Anmeldung via HTTP Authorisation Header für "auth" = "basic" oder "digest";
Bzw. für "auth" = "post" Anmeldedaten als POST Data
  • auth:
    • "basic"
    • "digest"
    • "post"
  • [username]: username für auth=post
  • [password]: Passwort für auth=post
  • [totp]: TOTP für auth=post
get
Datensatz lesen
Beispiel: POST https://drdoc.com/model/crud POST Data: action=get&archive=scan&id=123
  • archive: Zu wählendes Archiv
  • action: get
  • id: Dokument-Nr.
  • [id_field]: Feld der ID
  • [lock]: true|false, gibt an, ob der Datensatz zur Bearbeitung gesperrt werden soll. Default: false
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
set
Datensatz bearbeiten
  • archive: Zu wählendes Archiv
  • action: set
  • value: zu speichernder Datensatz als JSON-Objekt kodiert.
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
create
Datensatz erstellen
  • archive: Zu wählendes Archiv
  • action: create
  • value: zu erstellender Datensatz als JSON-Objekt kodiert.
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
remove
Datensatz löschen
  • archive: Zu wählendes Archiv
  • action: get
  • id: Dokument-Nr. des zu löschenden Datensatzes + Dokuments
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
remove-all
Alle Datensätze löschen
  • archive: Zu wählendes Archiv
  • action: remove-all
  • value: zu löschende Datensätze als JSON-Objekt kodiert.
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
searchfields
Feldsuche in einem Archiv
  • archive: Zu wählendes Archiv
  • action: searchfields
  • value: Suchbedigung der zu suchenden Datensätze als JSON-Objekt kodiert
  • [selection]: Auswahl-Felder mit ";" separiert
  • [sort]: Sortierungs-Felder mit ";" separiert
  • [duplicate]: Ausgabedubletten-Felder mit ";" separiert
  • [max]: Maximale Anzahl der intern Treffer-Datensätze (nicht der Zurückgegebenen). Für unbegrenzt: -1
  • [start]: Absoluter Startindex in der internen Treffer-Liste
  • [count]: Anzahl der maximal zurückgegebenen Datensätze
  • [recursive]: new, true
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
textretrieval
Volltextsuche in einem Archiv
  • archive: Zu wählendes Archiv
  • action: textretrieval
  • value: Suchbedingung
  • [selection]: Auswahl-Felder mit ";" separiert
  • [sort]: Sortierungs-Felder mit ";" separiert
  • [duplicate]: Ausgabedubletten-Felder mit ";" separiert
  • [max]: Maximale Anzahl der intern Treffer-Datensätze (nicht der Zurückgegebenen). Für unbegrenzt: -1
  • [start]: Absoluter Startindex in der internen Treffer-Liste
  • [count]: Anzahl der maximal zurückgegebenen Datensätze
  • [recursive]: new, true
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
hyper
Hypersuche über mehrere Archive
  • action: hyper
  • value: Name der Hypersuche
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
unlock
  • archive: Zu wählendes Archiv
  • action: unlock
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
tree
  • archive: Zu wählendes Archiv
  • action: tree
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
wf-set-completed
  • archive: Zu wählendes Archiv
  • action: wf-set-completed
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
thesaurus
  • archive: Zu wählendes Archiv
  • action: thesaurus
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
reo-unlock
Entsperrt alle Datensätze des Archivs. Es müssen sich zuvor alle User abmelden.
  • archive: Zu wählendes Archiv
  • action: reo-unlock
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei

3.) Document

Die REST API für Dokumente ist über folgenden Pfad über HTTP/HTTPS zugänglich: "/model/document".

Aktion GET Parameter
get
Dokument laden
Beispiel: https://drdoc.com/model/document?action=get&archive=scan&id=123
  • archive: Zu wählendes Archiv
  • action: get
  • id: ID
  • [id_field]: Feld der ID
  • [original]: Default: "true; "false" gibt an, dass aus Intern TIFF eine PDF generiert werden soll
  • [download]: Default: "false"; "true" gibt an, ob ein Download gestartet werden soll
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
set
Erstellt ein Dokument, welches in FILE angegeben ist. Je nach Versionsverwaltung wird eine neue Version erzeugt.
  • archive: Zu wählendes Archiv
  • action: set
  • id: ID
  • [id_field]: Feld der ID
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
+ Dokument in FILE
create
Erstellt eins oder mehrere Dokumente mit Feldvorbelegung.
  • archive: Zu wählendes Archiv
  • action: create
  • [preset]: Feldvorbelegung
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
+ Dokument(e) in FILE

Diese Website verwendet aus technischen Gründen Cookies für das Caching bzw. Bereitstellen von Session-bezogenen Inhalten. Diese Website verwendet Cookies und nutzt Website Tracking-Technologien von Dritten, um ihre Dienste anzubieten, stetig zu verbessern und Werbung entsprechend der Interessen der Nutzer anzuzeigen.
Ich bin mit der Datenschutzerklärung einverstanden und kann meine Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen oder ändern.
Aus Gründen der Vernunft und besseren Lesbarkeit verzichten wir auf die gleichzeitige Verwendung der Sprachformen männlich und weiblich. Sämtliche Personenbezeichnungen gelten daher gleichermaßen für alle Geschlechter.