Struktur von API-Antworten

Du kannst für das guestoo Back-End zwischen zwei Darstellungsoptionen wählen. Die Screenshots in der Doku basieren auf dem "Klassischen Design".
Hier siehst Du die Unterschiede, damit Du dich auch im "Modernen Design" zurecht findest: » guestoo Back-End-Design
Inhalte dieser Seite:

Struktur von API-Antworten

Wird eine Anfrage zum Scannen eines Dokuments an die REST-API gestellt, so sieht die Antwort immer identisch aus. Im folgenden Beispiel-Response wurden die sich wiederholenden Bereiche mit "..." ausgeblendet. Ansonsten ist die Antwort vollständig.

{
    "id": "b2f00240-c5af-4b29-9511-25480c4e280e",
        "identificationKey": null,
        "workflowStatus": "READY_WITH_FEEDBACK",
        "ocrEngineType": "IMAGE",
        "imageBase64": null,
        "resultData": null,
        "resultOcrText": null,
        "configurationName": "scansioInvoiceConfiguration",
        "results": [ ... ]
}

Wie zu sehen, werden auf der obersten Ebene des Responses die genutzten Scan-Einstellungen aufgelistet. Ergebnisse werden als Object-Array im Attribut "results" zurückgegeben. Auf diese soll nachfolgend intensiver eingegangen werden. Für mehr Informationen zu den Attributen kann die [REST API-Dokumentation](https://api.scansio.de/doc/index.html#tag/scan-controller) konsultiert werden.

Der Wert des Attributs "results" kann beispielsweise so aussehen:


{
    "id": "b2f00240-c5af-4b29-9511-25480c4e280e",
        ...,
        "results": [
        {
            "identificationCode": "SUM",
            "label": "Summe",
            "itemWorkflowStatus": "HIT_FOUND",
            "dataType": "NUMBER",
            "value": "4.35",
            "id": "b3ee5671-6357-4ef6-8047-727b424e761a",
            "primary": true,
            "markConfidence": 90,
            "markPosition": 72,
            "forceValidation": false,
            "hitPossiblyExists": null,
            "validationStartX": 0.23904028436018956,
            "validationEndX": 0.7106042654028436,
            "validationStartY": 0.5368333333333334,
            "validationEndY": 0.5816666666666667,
            "rawStartX": 0.6411416127759302,
            "rawEndX": 0.6825981382160745,
            "rawStartY": 0.5530666666913517,
            "rawEndY": 0.5653842724265998,
            "imageBase64": null
        },
        {
            "identificationCode": "COMPANY",
            "label": "Unternehmen",
            "itemWorkflowStatus": "HIT_FOUND",
            "dataType": "TEXT",
            "value": "REWE",
            ...
        },
        {
            "identificationCode": "INVOICE_DATE",
            "label": "Rechnungsdatum",
            "itemWorkflowStatus": "HIT_FOUND",
            "dataType": "DATE",
            "value": "2018-07-04T00:00:00.000Z",
            ...
        },
        {
            "identificationCode": "PHONE_NUMBER",
            "label": "MwSt. 5/7%",
            "itemWorkflowStatus": "NO_HIT_FOUND",
            "dataType": "NUMBER",
            "value": null,
            ...
        },
        ...
    ]
}

Die Attribute lassen sich grundsätzlich in 3 verschiedene Gruppen unterteilen:

Grundlegende Attribute

Das Result-Objekt und insbesondere das Attribut "itemWorkflowStatus" werden immer mitgegeben - auch dann, wenn keine Werte gefunden wurden. In diesem Fall hat "itemWorkflowStatus" den Wert "NO_HIT_FOUND". Ist bei der Ausführung des Scans ein Fehler passiert, wird der Wert auf "ERROR" gesetzt.

Das eigentliche Ergebnis steht im Feld "value". Der Datentyp des Ergebnisses wird im Attribut "dataType" angegeben. Derzeit kann das Attribut lediglich die Werte "TEXT", "NUMBER" oder "DATE" annehmen.

Attribute zur Validierung

Die Attribute "markConfidence" und "markPosition" geben einen ungefähren Wert von 0 bis 100 zurück, inwiefern dem Ergebnis vertraut werden kann. 100 würde bedeuten, dass das Ergebnis äußerst unwahrscheinlich falsch ist.

Attribute für Bildausschnitte

Die Werte mit "raw..." und "validation" im Namen geben Bereiche von Bildausschnitten an, in denen das jeweilige Ergebnis gefunden wurde. Der Unterschied zwischen "raw" und "validation" ist lediglich, dass "validation" einen größeren Bildausschnitt umfasst und somit bei der Überprüfung mehr Informationen aus dem Kontext des Werts zur Verfügung stehen.