Runtime Model
GraphQL ermöglicht das Abfragen und Mutieren von Daten. Mutationen sind Operationen wie Erstellen, Aktualisieren und Löschen. Dieses Kapitel beschreibt, wie Daten erstellt, abgerufen, aktualisiert und gelöscht werden können. Es bietet eine Referenz für die GraphQL-Scalar-Typen, Input-Typen und Enums, die in der OctoMesh-GraphQL-API verwendet werden.
In OctoMesh bietet die GraphQL-Runtime-API Zugriff auf die Entitäten des Runtime Model. Sie können diese Entitäten über das Feld runtime in Ihren GraphQL-Abfragen abfragen.
Scalar Types
OctoObjectId
Eine 24-stellige hexadezimale Zeichenkette, die eine Runtime-Entität eindeutig identifiziert. Basiert auf dem ObjectId-Format von MongoDB.
Format: [0-9a-f]{24}
Beispiel: 65dc6d24cc529cdc46c84fcc
SimpleScalar
Ein flexibler Scalar, der verschiedene primitive Werte (Zeichenketten, Zahlen, Booleans) darstellen kann. Wird häufig für Konfigurationswerte, Vergleichswerte in Filtern und dynamische Daten verwendet.
LargeBinary
Wird für Binärdaten verwendet, typischerweise für Datei-Uploads. Akzeptiert Base64-kodierte Zeichenketten.
Composite Types
RtEntityId
Ein zusammengesetzter Input-Typ, der primär für Löschoperationen verwendet wird. Kombiniert den Runtime-Identifier mit den Typinformationen.
| Field | Type | Required | Description |
|---|---|---|---|
rtId | OctoObjectId | Yes | Der Runtime-Identifier der Entität |
ckTypeId | String | Yes | Der Construction-Kit-Typ-Identifier (z. B. Industry.Energy/EnergyMeter) |
RtCkTypeId
Verweist von Runtime-Operationen aus auf einen Typ im Construction Kit.
Format: [Model]/[TypeName]
Beispiele: Industry.Energy/EnergyMeter, System.Communication/Adapter
Input Types
Naming Conventions
| Operation | Input Type Pattern | Example |
|---|---|---|
| Create | [TypeName]Input | IndustryEnergyEnergyMeterInput |
| Update | [TypeName]InputUpdate | IndustryEnergyEnergyMeterInputUpdate |
Create vs Update Input Types
- Create Input Types: Enthalten alle Felder, die beim Erstellen einer neuen Entität gesetzt werden können. Pflichtfelder müssen angegeben werden.
- Update Input Types: Erfordern immer das Feld
rtId, um die Entität zu identifizieren. Alle anderen Felder sind optional – nur die angegebenen Felder werden aktualisiert.
Die Systemfelder rtDisplayName und rtDisplayDescription sind nicht Teil eines Input-Typs. Sie werden von der Engine beim Speichern aus den Anzeigenamen-Regeln des Typs berechnet und können nicht über die API oder den Import gesetzt werden.
Query Parameter Types
FieldFilter
Wird verwendet, um Abfrageergebnisse anhand von Attributbedingungen zu filtern. Siehe Retrieve für Anwendungsbeispiele.
| Field | Type | Description |
|---|---|---|
attributePath | String | Der Pfad des zu filternden Attributs (z. B. contact.firstName) |
operator | FilterOperator | Der Vergleichsoperator |
comparisonValue | SimpleScalar | Der Wert, mit dem verglichen wird |
Sort
Wird verwendet, um die Sortierreihenfolge der Abfrageergebnisse festzulegen. Siehe Retrieve für Anwendungsbeispiele.
| Field | Type | Description |
|---|---|---|
attributePath | String | Der Pfad des Attributs, nach dem sortiert wird (z. B. contact.firstName) |
sortOrder | SortOrder | Die Sortierrichtung |
SearchFilter
Wird für die Textsuche über mehrere Attribute hinweg verwendet. Siehe SearchFilter für die ausführliche Dokumentation.
| Field | Type | Required | Description |
|---|---|---|---|
searchTerm | String | Yes | Der zu suchende Text |
type | SearchFilterType | Yes | ATTRIBUTE_FILTER oder TEXT_SEARCH |
attributePaths | [String] | For ATTRIBUTE_FILTER | Liste der Attributpfade, in denen gesucht wird |
language | String | For TEXT_SEARCH | Sprachcode für die Volltextsuche |
Enum Types
FilterOperator
| Value | Description |
|---|---|
EQUALS | Exakte Übereinstimmung zwischen Feldwert und Vergleichswert |
NOT_EQUALS | Feldwert ist ungleich dem Vergleichswert |
LESS_THAN | Numerischer Feldwert ist kleiner als der Vergleichswert |
LESS_EQUAL_THAN | Numerischer Feldwert ist kleiner oder gleich dem Vergleichswert |
GREATER_THAN | Numerischer Feldwert ist größer als der Vergleichswert |
GREATER_EQUAL_THAN | Numerischer Feldwert ist größer oder gleich dem Vergleichswert |
IN | Feldwert ist einer der Werte im Vergleichs-Array |
NOT_IN | Feldwert ist keiner der Werte im Vergleichs-Array |
LIKE | Wildcard-Übereinstimmung mit * (z. B. *demo*) |
MATCH_REG_EX | Übereinstimmung mit regulärem Ausdruck (z. B. ^demo$) |
ANY_EQ | Für Array-Felder: ein beliebiges Element entspricht dem Vergleichswert |
SortOrder
| Value | Description |
|---|---|
ASCENDING | Sortierung A-Z, 0-9 |
DESCENDING | Sortierung Z-A, 9-0 |
DEFAULT | Standardreihenfolge der Datenbank |
GraphDirection
Wird für Assoziationsabfragen verwendet. Siehe Retrieve für Anwendungsbeispiele.
| Value | Description |
|---|---|
ANY | Sowohl eingehende als auch ausgehende Assoziationen |
INBOUND | Eingehende Assoziationen (Ziel zu Quelle) |
OUTBOUND | Ausgehende Assoziationen (Quelle zu Ziel) |
SearchFilterType
| Value | Description |
|---|---|
ATTRIBUTE_FILTER | Wildcard-Suche in angegebenen Attributpfaden |
TEXT_SEARCH | Volltextsuche über den Text-Index der Datenbank |