CONTENT SERVER API

Übersicht

Die CONTENT SERVER API ist eine HTTP basierte Schnittstelle zum CONTENT SERVER für die Verwaltung von Dokumenten

Allgemein

Platzhalter

Bei der Beschreibung der API gibt es bei den verschiedenen Aufrufen folgende Platzhalter.

Platzhalter

Beschreibung

{{host}}hostname/IP zum CONTENT SERVER
{{port}}port zum CONTENT SERVER

{{repository}}

Name des repositorys mit dem kommunziert werden soll

{{idfilename}}ID einer temporären Datei (Upload)

{{document_uuid}}

ID eines Dokuments (UUID)

{{blob_uuid}}ID eines Blobs (UUID)
{{note_uuid}}ID einer Notiz
{{SessionToken}}ID einer aktiven Session

HTTP Returncodes

Code

Beschreibung

200

OK

201

Eintrag wurde erzeugt

204

OK, aber kein Inhalt

400

Fehlerhafte/Unerlaubte Anfrage

401

Nicht autorisierte Anfrage

403Unerlaubte Anfrage

404

Ressource wurde nicht gefunden

406Ressource steht nicht wie gewünscht zur Verfügung
412Eine in der Anfrage übertragene Voraussetzung traf nicht zu (If-Match).
500Interner / unerwarteter Server Fehler

Datenobjekte

Der Aufbau eine Dokuments kann prinzipiell eine beliebige Struktur bzw. Felder und Werte beinhalten. Es gibt jedoch ein paar interne Schlüsselnamen, die vom System fest vergeben sind. Interne Schlüsselnamen beginnen alle mit einem Unterstrich.

Dokument

Enthält sämtliche Metadaten, Informationen über die zugrunde liegenden Binärdaten, sowie optionale Feldinformationen zu einem Dokument. Die nachfolgende Tabelle zeigt nur die intern fest vergebenen Schlüsselnamen und deren Bedeutung. Ein Dokument kann jedoch um beliebige Informationen erweitert werden.

FeldnameTypWerteBeschreibung
_uuid String (32)
Eindeutige ID des Dokuments
_rootuuid String (32)
Root ID des Dokuments (Bei Versionierung ändert sich die _uuid bei Änderungen am Dokument)
_parentuuidString (32)
ID der vorhergehenden Version des Dokuments
_storprovid String (32)
ID des Storage Providers (z.b. bei Wechsel des Laufwerks)
_state Integer
unbenutzt
_version Integer
Versionsnummer eines Dokuments (bei aktiver Versionierung wird die Nummer inkrementiert)
_active Integer0/1Aktives/Neuestes Dokument bei Versionierung (aktiv = 1)
_deleted Integer0/1Dokument gelöscht (=1) oder nicht gelöscht (=0)
_createdate Date (UTC)
Wann wurde das Dokument erzeugt
_changedate Date (UTC)
Wann wurde das Dokument geändert
_subject String
Betreff des Dokuments
_docrefid String
URI Referenz auf ein anderes Dokument (docref://<RepoName>/<RepoId>/<DocId>/<Version>
_doctype String
Typ eines Dokuments
_language String
Sprache des Dokuments
_externalid String
Zugehörige ID auf ein externes Dokument
_fulltextString
Erzeugter Text für die Volltextsuche
_fields JSON-Objss.u.Feldliste des Dokuments (Xtract-Ergebnisse)
_table JSON-Objs.u.Tabelle der Rechnungspositionen
_blobs JSON-Arrays.u.Array von Blobs eines Dokuments (PDF, PNG, TIF, etc.)

Blobs 

JSON-Array von Blob Einträgen (Binärdaten) in einer Dokumentstruktur (_blobs)

FeldnameTypWerteBeschreibung
_uuid String (32) 
Eindeutige ID des Blobs
_storprovid String (32)
ID des Storage Providers (z.b. bei Wechsel des Laufwerks)
_changedate Date (UTC)
Wann wurden Werte des Blobs geändert
_extString
Extension des Blob Objekts (z.b. tif, pdf, ...) 
_mimetypeString
MimeTyp des Blob Objekts (z.b. Image/tiff, Image/png, etc...) 
_doctype String
unbenutzt - Typ eines Blobs
_extblobidString
unbenutzt - ID auf ein externes Blob Objekt
_nameString
Name des Blob Objekts
_blobdataString
unbenutzt - Daten des Blob Objekts
_bloblinkString
unbenutzt - URI auf Blob Objekt
_blobsizeInteger
Größe des abgelegten Blob Objekt Daten (kann unterschiedlich zu <_datasize> sein (z.b. bei _encryption) 
_datasizeInteger
Größe der Blob Objekt Daten in Bytes (sollte vom Client gesetzt werden)
_blobdateDate (UTC)
Datum des Blob Objekts
_encryptionInteger0,1,2Verschlüsselungsverfahren der Blob Objektdaten (0=unverschlüsselt, 1=3DES, 2=AES256)

Fields

JSON-Objektliste von Feldinformationen zu einem Dokument (z.b. aus einer OCR Erkennung des zugrundeliegenden Blob Objekts)

FeldnameTypWerteBeschreibung
_active Integer0/1Feld aktiv/inaktiv (aktiv = 1)
_nameString
Name des Feldes
_datatypeString
Datentyp des Feldes
_valueMixed
Wert des Feldes
_confidence Integer
OCR/Scan Ergebnis Sicherheit/Verlässlichkeit (0=unsicher, 100=verlässlich)
_pageInteger
Seite des erkannten Feldes im Blob Objekt
_zoneJSON-Obj 
Bereich des Feldscans (_left_top, _right_bottom_width_height) 

Notes

Zu jedem Dokument können über die Api beliebige Notizen angelegt, geholt oder gelöscht werden. JSON-Strukur einer Notiz zu einem Dokument:

FeldnameTypWerteBeschreibung
_uuid String (32)
Eindeutige ID der Notiz
_docidString (32)
ID des mit der Notiz verknüpften Dokuments
_createdate Date (UTC)
Datum der Anlage der Notiz
_usernameString
Wer hat die Notiz angelegt
_noteinfoString
unbenutzt
_notetypeInteger
Typ der Notiz (0=Text (default), 1=Keyword)
_notetextString
Text der Notiz

Table

JSON-Struktur von Tabelleninformationen zu einem Dokument (z.b. Rechnungsdaten aus einer OCR Erkennung)

FeldnameTypWerteBeschreibung
_headerJSON-Arrays.u.Spalteninformationen der Tabelle
_rowsJSON-Arrays.u.Zeilen einer Tabelle

Spalten (_header)

_idInteger0..nSpaltenindex einer Tabelle (für die Zuordnung der Zeilenfelder)
_externalidString
Externe ID eines Feldes
_colnameString
Spaltenname
_datatypeString
Datentyp der Werte der Tabellespalte

Zeilen (_rows)

_rowInteger0..nZeilennummer
cellobj_nameJSON-Objs(s.u.)Zellenobjekte innerhalb einer Zeile

Zellenobjekte

_colidxInteger0..nSpaltenindex (siehe _header)
_valuemixed
Zelleninfomationen mit Typ aus entsprechender _header informationen
_confidenceInteger
OCR/Scan Ergebnis Sicherheit/Verlässlichkeit (0=unsicher, 100=verlässlich)
_pageInteger0..nSeite der Zelle innerhalb des Dokuments
_zoneJSON-Obj 
Bereich des Zellenscans (_left, _top, _right, _bottom, _width, _height) 

Beispiel JSON einer Tabelle

Nutzungshinweise

Die API orientiert sich stark an das standardisierte Open Data Protokoll (OData), erfüllt dieses aber nicht vollständig. Aufgrund der offenen Struktur der abgelegten Informationen kann speziell im Bereich CSDL (Common Schema Definition Language) das Protokoll nur lückenhaft erfüllt werden.