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
  4. Fieldselections / Fieldproperties

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 Return / Result
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 Return / Result
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
  • [content_casesensitive]: true, false: Groß-/Kleinschreibung beachten
  • [content_substring]: true, false: Trunkiert suchen
  • [content_tablerows]: true, false: Je Tabellenzeile einen Datensatz ausgeben
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
  • [target_profile]: true, false: Profildaten durchsuchen
  • [target_doc]: true, false: Dokument-Text durchsuchen
  • [target_redline]: true, false: Redlining durchsuchen
  • [content_casesensitive]: true, false: Groß-/Kleinschreibung beachten
  • [content_tablerows]: true, false: Je Tabellenzeile einen Datensatz ausgeben
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
true / false

3.) Document

Die REST API für Dokumente ist über folgenden Pfad über HTTP/HTTPS zugänglich: "/model/document".
Sie können Dokumente laden, speichern und erstellen.
Der Response (JSON) hat folgende Struktur:

  • $ModelType (Return Type / Dr.DOC Archiv)
  • Result
  • HasArray
  • Count
  • CountTotal
  • HasError
  • Error
    • Message
    • InternalMessage
Aktion GET Parameter Return / Result
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
Document Content
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
true / false
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
true / false
4.) Fieldselections / Fieldproperties

Die REST API für Feldeigenschaften (Fieldproperties) und Feldauswahlen (Fieldselections) ist über folgenden Pfad über HTTP/HTTPS zugänglich: /model/fieldselection.
Sie können Feldauswahlen auflisten, laden und speichern sowie Feldeigenschaften laden und speichern.

Aktion GET Parameter Return / Result
get-fieldproperty
Feldeigenschaft laden.
Beispiel: https://drdoc.com/model/fieldselection?archive=rec&action=get-fieldproperty&type=INPUTDUPLICATES
  • archive: Zu wählendes Archiv
  • action: get-fieldproperty
  • type:
    • INPUTDUPLICATES
    • HEADLINE
    • DATATYPE (experminetell)
    • AUTOFIELD
    • MANDANTORY
    • KEY_DEF
    • LABEL
    • FIELDTYPE (experimentell)
    • LOG_CHANGES
    • PLACEHOLDER
    • CAL_SERIES
    • DATA_TRANSFER_STANDARD
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
Object mit Feldname als Property und Feldwert als Value.
set-fieldproperty
Feldeigenschaft speichern (überschreiben oder erstellen).
Beispiel: https://drdoc.com/model/fieldselection?archive=rec&action=set-fieldproperty&type=INPUTDUPLICATES&value={"ref_num"%3A "1 20"%2C "c_name"%3A "3 20" }
  • archive: Zu wählendes Archiv
  • action: set-fieldproperty
  • type:
    • INPUTDUPLICATES
    • HEADLINE
    • DATATYPE (experminetell)
    • AUTOFIELD
    • MANDANTORY
    • KEY_DEF
    • LABEL
    • FIELDTYPE (experimentell)
    • LOG_CHANGES
    • PLACEHOLDER
    • CAL_SERIES
    • DATA_TRANSFER_STANDARD
  • value: Object mit Feldname als Property und Feldwert als Value.
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
true / false
list-fieldselections
Namen aller Feldauswahlen für den angegebenen Feldauswahl-Typ auflisten.
Beispiel: https://drdoc.com/model/fieldselection?archive=rec&action=list-fieldselections&type=LIST
  • archive: Zu wählendes Archiv
  • action: list-fieldselections
  • type:
    • SEARCHTEMPLATE
    • LIST
    • SORT
    • IMPORT_ASCII
    • EXPORT_ASCII
    • PRESET
    • FIELDCONTENT
    • CAL_TASK
    • CAL_EVENT
    • CAL_WVL
    • CAL_APPOINTMENT
    • OUTPUT_DUPLICATES
    • KEEP_FIELD_CONTENT
    • DATA_TRANSFER_REPORT
    • COLUMN_HEADINGS
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
Array aller Feldauswahl Namen zum angegebenen Feldauswahl-Typ
get-fieldselection
Feldauswahl laden.
Beispiel: https://drdoc.com/model/fieldselection?archive=rec&action=get-fieldselection&type=LIST&name=TEST_123
  • archive: Zu wählendes Archiv
  • action: get-fieldselection
  • type:
    • SEARCHTEMPLATE
    • LIST
    • SORT
    • IMPORT_ASCII
    • EXPORT_ASCII
    • PRESET
    • FIELDCONTENT
    • CAL_TASK
    • CAL_EVENT
    • CAL_WVL
    • CAL_APPOINTMENT
    • OUTPUT_DUPLICATES
    • KEEP_FIELD_CONTENT
    • DATA_TRANSFER_REPORT
    • COLUMN_HEADINGS
  • name: Name der Feldauswahl
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
Object mit Feldname als Property und Feldwert als Value.
set-fieldselection
Feldauswahl speichern (überschreiben oder erstellen).
Beispiel: https://drdoc.com/model/fieldselection?archive=rec&action=set-fieldselection&type=LIST&name=TEST_123&value={"ref_num"%3A "1 20"%2C "c_name"%3A "3 20" }
  • archive: Zu wählendes Archiv
  • action: set-fieldselection
  • type:
    • SEARCHTEMPLATE
    • LIST
    • SORT
    • IMPORT_ASCII
    • EXPORT_ASCII
    • PRESET
    • FIELDCONTENT
    • CAL_TASK
    • CAL_EVENT
    • CAL_WVL
    • CAL_APPOINTMENT
    • OUTPUT_DUPLICATES
    • KEEP_FIELD_CONTENT
    • DATA_TRANSFER_REPORT
    • COLUMN_HEADINGS
  • name: Name der Feldauswahl
  • value: Object mit Feldname als Property und Feldwert als Value.
  • [usermanager]: Benutzerverwaltung, Pfad zur .BVD Datei
true / false

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.