Erweiterungssyntax für Mapper

Eine Mapper-Erweiterung entspricht den folgenden syntaktischen Konventionen:

  • Die Erweiterung wird durch ein JSON-Objekt definiert, das im Feld mappers der Erweiterungsdatei für Mapper enthalten ist
  • Der Name der Mapper-Erweiterung entspricht dem der Schemadefinitionserweiterung für die zu erweiternde Ressource
  • Die Erweiterung muss über ein schemaDefinition-Attribut verfügen, das die Mapper-Erweiterung mit der Schemadefinitionserweiterung verknüpft
  • Die Erweiterung muss über ein root-Attribut verfügen, das die Schemadefinitionserweiterung mit einer ClaimCenter-Entität verknüpft
  • Die Erweiterung muss über ein properties-Attribut verfügen, in dem die erweiterten Eigenschaften gespeichert werden
  • Der Name jeder erweiterten Eigenschaft muss mit dem in der zugehörigen Schemadefinitionserweiterung gefundenen Namen übereinstimmen
  • Jede erweiterte Eigenschaft muss über ein path-Attribut verfügen, das auf ein ClaimCenter-Entitätsfeld verweist
  • Wenn der Wertetyp der erweiterten Eigenschaft ein Objekt ist, muss er auch über ein mapper-Attribut verfügen, das einen relevanten URI-Verweis enthält

Die folgende Liste gibt eine Mapper-Erweiterung für das Activity-Schema in der Common API wieder. Die Erweiterung ordnet eine erweiterte shortSubject_Ext-Ressourceneigenschaft dem ClaimCenter Activity.ShortSubject-Entitätsfeld zu:

{
  . . .
  "mappers": {
    "Activity": {
      "schemaDefinition": "Activity",
      "root": "entity.Activity",
      "properties": {
        "shortSubject_Ext": {
          "path": "Activity.ShortSubject"
        }
      }
    }
  }
}
  • Activity: Der Name des Mappers
  • schemaDefinition: Eine Zuordnung zur Activity-Schemadefinition
  • root: Eine Zuordnung der Activity-Schemadefinition zur Activity-Entität in ClaimCenter
  • shortSubject_Ext: Ein Eigenschaftsname, wie in der Schemadefinition definiert
  • path: Ein Pfad, der die erweiterte Eigenschaft mit dem Activity.ShortSubject-Entitätsfeld verknüpft. Werte können verkettet werden. Beispiel: Der Pfad für den Anzeigenamen eines Kontakts für einen Schadenfall ist ClaimContact.Contact.DisplayName.

Wenn der Wertetyp der Eigenschaft durch einen URI-Verweis in der Schemadefinitionserweiterung definiert ist, muss die erweiterte Eigenschaft auch ein mapper-Attribut enthalten. Die Syntax für diesen Wert lautet #/mappers/ gefolgt vom Namen des Schemas. Wenn der Wertetyp der Eigenschaft in der Schemadefinitionserweiterung beispielsweise "$ref": "#/definitionen/SimpleReference“ lautet, dann wäre der mapper-Attributwert "mapper": "#/mappers/SimpleReference".

Die folgende Liste gibt eine erweiterte activityClass_Ext-Ressourceneigenschaft wieder, die dem durch einen Typenschlüssel unterstützten Activity.ActivityClass-Entitätsfeld von ClaimCenter zugeordnet ist. Die Schemadefinitionserweiterung deklariert den Wertetyp der Eigenschaft als "$ref": "#/definitions/TypeKeyReference". Daher ist es erforderlich, das Attribut mapper einzuschließen:

{
  . . .
  "mappers": {
    "Activity": {
      "schemaDefinition": "Activity",
      "root": "entity.Activity",
      "properties": {
         "activityClass_Ext": {
           "path": "Activity.ActivityClass",
           "mapper": "#/mappers/TypeKeyReference"
        }
      }
    }
  }
}