Standardisierung von Nutzdatenstrukturen

Die Kommunikation zwischen aufrufenden Anwendungen und System-APIs ist einfacher zu verwalten, wenn die Informationen in den Nutzdatenpaketen einer Standardstruktur folgen. Die System-APIs verfügen über Standardstrukturen sowohl für Anforderungs- als auch für Antwort-Nutzdaten. Die Strukturen werden durch Daten-Envelopes sowie durch Anforderungs- und Antwortschemas definiert.

Standardisierung von Informationen, die allen Endpunkten gemein sind

Ein Daten-Envelope ist ein Wrapper, der an die System-APIs gesendetes oder von diesen zurückgegebenes JSON umschließt. Um eine Standard-Nutzdatenstruktur beizubehalten, verwenden die System-APIs zwei Daten-Envelopes: DataEnvelope und DataListEnvelope.

DataEnvelope wird verwendet, um das Informationsformat für ein einzelnes Element zu standardisieren. Sie gibt eine data-Eigenschaft mit den folgenden untergeordneten Eigenschaften an:

  • checksum
  • id
  • links (für ein einzelnes Element)
  • method
  • refid
  • related
  • type
  • uri
Das Format der Nutzdaten für ein einzelnes Element sieht wie folgt aus:
{
    "data": {
        "checksum": ...,
        "id":       ...,
        "links":    ...,
        "method":   ...,
        "refid":    ...,
        "related":  ...,
        "type":     ...,
        "uri":      ...
        }
    }
}

DataListEnvelope wird verwendet, um das Format von Informationen für Sammlungen zu standardisieren. Es gibt die folgenden Eigenschaften an, die gleichrangig mit dem Datenabschnitt sind:

  • count
  • links (für eine Sammlung)
  • total

Das Format der Nutzdaten für eine Sammlung sieht wie folgt aus:

{
    "count"    ...,
    "data": [
        { properties_for_element_1 },
        { properties_for_element_2 },
        ...
    ],
    "links":   ...,
    "total":   ...
}

Nicht jede Eigenschaft wird in allen Nutzdaten angezeigt. Es gibt verschiedene Gründe, warum eine Eigenschaft nicht in bestimmten Nutzdaten angezeigt wird. Zum Beispiel:

  • Einige Eigenschaften, z. B. refid, gelten nur für Anforderungen und werden nicht in Antwort-Nutzdaten angezeigt.
  • Einige Eigenschaften, z. B. count, gelten nur für Antworten und werden nicht in Anforderungs-Nutzdaten angezeigt.
  • Einige Eigenschaften, z. B. related, werden standardmäßig nicht und nur dann angezeigt, wenn die Anforderung bestimmte Abfrageparameter enthält.

Standardisierung von spezifischen Informationen für einen bestimmten Endpunkt

DataEnvelope und DataListEnvelope stellen ein Standardformat für Informationen bereit, das für alle Anforderungs- und Antwort-Nutzdaten gilt. Verschiedene Endpunkte interagieren jedoch mit verschiedenen Ressourcentypen. Für jeden Endpunkt muss ein Abschnitt der Nutzdaten Informationen über einen bestimmten Ressourcentyp bereitstellen.

Um dies zu erreichen, verwenden die System-APIs auch Anforderungs- und Antwortschemas. Ein Anforderungsschema ist ein Schema, das verwendet wird, um die gültige Struktur von Anforderungs-Nutzdaten für einen bestimmten Satz von Endpunkten zu definieren. Analog dazu ist ein Antwortschema ein Schema, das verwendet wird, um die gültige Struktur von Antwort-Nutzdaten für einen bestimmten Satz von Endpunkten zu definieren.

Anforderungs- und Antwortschemas sind hierarchisch. Für Antworten verwendet beispielsweise der GET /activity/{activityId}-Endpunkt das ActivityResponse-Schema. Dieses Schema hat zwei untergeordnete Schemas: ActivityData und ActivityResponseInclusions.

Anforderungs- und Antwortschemas erweitern DataEnvelope oder DataListEnvelope. Dadurch wird sichergestellt, dass Informationen, die für alle Endpunkte relevant sind, standardmäßig in Nutzdaten angezeigt werden.

Anforderungs- und Antwortschemas definieren auch eine attributes-Eigenschaft für die Nutzdaten. Diese Eigenschaft ist mit einem Schema verknüpft, das ressourcenspezifische Informationen für die Nutzdaten enthält. Beispiel: Der Endpunkt GET /activity/{activityId} gibt eine attributes-Eigenschaft im untergeordneten ActivityData-Schema an. Diese Eigenschaft ist mit dem Activity-Schema verknüpft, das aktivitätsspezifische Felder enthält, z. B. activityPattern und activityType. Daher haben Antwort-Nutzdaten für den Endpunkt GET /activity/{activityId} die folgende Struktur:

{
    "data": {
        "checksum": ...,
        "attributes" : {
            "activityPattern": ... ,
            "activityType": ...,
            ...},
        "id":       ...,
        "links":    ...,
        "method":   ...,
        "refid":    ...,
        "related":  ...,
        "type":     ...,
        "uri":      ...
        }
    }
}

Anzeigen von Antwortschemas

Sie können die Swagger-Benutzeroberfläche verwenden, um die Struktur von Antwort-Nutzdaten für einen bestimmten Endpunkt zu überprüfen. Dazu gehören die Hierarchie der Antwortschemas und der Informationstyp in jedem Schema. Die Informationen werden im Bereich Responses der einzelnen Endpunkte auf der Registerkarte Model angezeigt.

Antwortschema in der Swagger-Benutzeroberfläche anzeigen

Prozedur

  1. Starten Sie ClaimCenter.
  2. Navigieren Sie in einem Webbrowser zur Swagger-Benutzeroberfläche für die entsprechende API.
  3. Klicken Sie auf die Vorgangsschaltfläche für den entsprechenden Endpunkt. Die Swagger-Benutzeroberfläche zeigt Details zu diesem Endpunkt unter dem Endpunktnamen an.
    • Um beispielsweise das Antwortschema für GET /activities/{activityID} anzuzeigen, klicken Sie auf die Schaltfläche GET für diesen Endpunkt.
  4. Blättern Sie abwärts zum Bereich Responses. Auf der Registerkarte Model werden die Schemahierarchie für diesen Endpunkt und die durch die einzelnen Schemas definierten Inhalte angezeigt.