Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erweiterungen
Anmerkung
Wir unterstützen jetzt hauptsächlich die _JS-Laufzeit und ihre Dokumentation. APPSYNC Bitte erwägen Sie, die APPSYNC _JS-Laufzeit und ihre Anleitungen hier zu verwenden.
$extensions
enthält eine Reihe von Methoden, mit denen Sie zusätzliche Aktionen in Ihren Resolvern ausführen können.
$extensions.evictFromApiCache(String, String, Object) : Object
-
Löscht ein Element aus dem serverseitigen AWS AppSync Cache. Das erste Argument ist der Typname. Das zweite Argument ist der Feldname. Das dritte Argument ist ein Objekt, das Schlüssel-Wert-Paar-Elemente enthält, die den Zwischenspeicher-Schlüsselwert angeben. Sie müssen die Elemente im Objekt in derselben Reihenfolge platzieren wie die Caching-Schlüssel in den zwischengespeicherten Resolvern.
cachingKey
Anmerkung
Dieses Tool funktioniert nur für Mutationen, nicht für Abfragen.
$extensions.setSubscriptionFilter(filterJsonObject)
-
Definiert erweiterte Abonnementfilter. Jedes Abonnementbenachrichtigungsereignis wird anhand der bereitgestellten Abonnementfilter bewertet und sendet Benachrichtigungen an Kunden, wenn alle Filter als erfüllt gelten
true
. Das Argument wirdfilterJsonObject
im folgenden Abschnitt beschrieben.Anmerkung
Sie können diese Erweiterungsmethode nur in den Antwortzuordnungsvorlagen eines Abonnement-Resolvers verwenden.
$extensions.setSubscriptionInvalidationFilter(filterJsonObject)
-
Definiert Filter für die Invalidierung von Abonnements. Abonnementfilter werden anhand der Payload für die Invalidierung bewertet und machen dann ein bestimmtes Abonnement ungültig, wenn die Filter Folgendes ergeben.
true
Das Argument wird imfilterJsonObject
folgenden Abschnitt beschrieben.Anmerkung
Sie können diese Erweiterungsmethode nur in den Antwortzuordnungsvorlagen eines Abonnement-Resolvers verwenden.
$extensions.invalidateSubscriptions(invalidationJsonObject)
-
Wird verwendet, um die Invalidierung eines Abonnements aufgrund einer Mutation einzuleiten. Das Argument ist
invalidationJsonObject
wie im folgenden Abschnitt beschrieben.Anmerkung
Diese Erweiterung kann nur in den Response-Mapping-Vorlagen der Mutationsresolver verwendet werden.
Sie können in einer einzelnen Anfrage nur maximal fünf eindeutige
$extensions.invalidateSubscriptions()
Methodenaufrufen verwenden. Wenn Sie dieses Limit überschreiten, erhalten Sie einen GraphQL-Fehler.
Argument: filterJsonObject
Das JSON Objekt definiert entweder Abonnement- oder Invalidierungsfilter. Es ist eine Reihe von Filtern in einemfilterGroup
. Jeder Filter ist eine Sammlung einzelner Filter.
{ "filterGroup": [ { "filters" : [ { "fieldName" : "userId", "operator" : "eq", "value" : 1 } ] }, { "filters" : [ { "fieldName" : "group", "operator" : "in", "value" : ["Admin", "Developer"] } ] } ] }
Jeder Filter hat drei Attribute:
-
fieldName
— Das GraphQL-Schemafeld. -
operator
— Der Operatortyp. -
value
— Die Werte, die mit demfieldName
Wert der Abonnementbenachrichtigung verglichen werden sollen.
Im Folgenden finden Sie ein Beispiel für die Zuweisung dieser Attribute:
{ "fieldName" : "severity", "operator" : "le", "value" : $context.result.severity }
Feld: fieldName
Der String-Typ fieldName
bezieht sich auf ein im GraphQL-Schema definiertes Feld, das mit der Payload fieldName
in der Abonnementbenachrichtigung übereinstimmt. Wenn eine Übereinstimmung gefunden wird, wird das Feld value
des GraphQL-Schemas mit dem value
des Abonnementbenachrichtigungsfilters verglichen. Im folgenden Beispiel entspricht der fieldName
Filter dem service
Feld, das in einem bestimmten GraphQL-Typ definiert ist. Wenn die Benachrichtigungs-Payload ein service
Feld mit einer value
Entsprechung von enthältAWS
AppSync
, wird der Filter wie folgt ausgewertet: true
{ "fieldName" : "service", "operator" : "eq", "value" : "AWS AppSync" }
Feld: Wert
Der Wert kann je nach Operator einen anderen Typ haben:
-
Eine einzelne Zahl oder ein boolescher Wert
-
Beispiele für Zeichenketten:,
"test"
"service"
-
Beispiele für Zahlen:
1
,2
,45.75
-
Boolesche Beispiele:,
true
false
-
-
Paare von Zahlen oder Zeichenketten
-
Beispiel für ein Zeichenkettenpaar:
["test1","test2"]
,["start","end"]
-
Beispiel für ein Zahlenpaar:
[1,4]
,[67,89]
,[12.45, 95.45]
-
-
Reihen von Zahlen oder Zeichenketten
-
Beispiel für ein String-Array:
["test1","test2","test3","test4","test5"]
-
Beispiel für ein Zahlenarray:
[1,2,3,4,5]
,[12.11,46.13,45.09,12.54,13.89]
-
Feld: Operator
Eine Zeichenfolge, bei der Groß- und Kleinschreibung beachtet wird, mit den folgenden möglichen Werten:
Operator | Beschreibung | Mögliche Werttypen |
---|---|---|
eq | Gleich | Ganzzahl, Gleitkommazahl, Zeichenfolge, Boolean |
Ein | Ungleich | Ganzzahl, Gleitkommazahl, Zeichenfolge, Boolean |
le | Kleiner als oder gleich | Ganzzahl, Gleitkommazahl, Zeichenfolge |
lt | kleiner als | Ganzzahl, Fließkommazahl, Zeichenfolge |
ge | Größer als oder gleich | Ganzzahl, Gleitkommazahl, Zeichenfolge |
gt | größer als | Ganzzahl, Fließkommazahl, Zeichenfolge |
enthält | Sucht nach einer Teilsequenz oder einem Wert in der Menge. | Ganzzahl, Fließkommazahl, Zeichenfolge |
notContains | Prüft, ob eine Teilsequenz oder ein Wert in der Menge fehlt. | Ganzzahl, Fließkommazahl, Zeichenfolge |
beginsWith | Sucht nach einem Präfix. | Zeichenfolge |
in | Sucht nach passenden Elementen in der Liste. | Array aus Ganzzahl, Gleitkommazahl oder Zeichenfolge |
notIn | Sucht nach passenden Elementen, die nicht in der Liste enthalten sind. | Array aus Ganzzahl, Gleitkommazahl oder Zeichenfolge |
zwischen | Zwischen zwei Werten | Ganzzahl, Gleitkommazahl, Zeichenfolge |
containsAny | Enthält gemeinsame Elemente | Ganzzahl, Fließkommazahl, Zeichenfolge |
In der folgenden Tabelle wird beschrieben, wie die einzelnen Operatoren in der Abonnementbenachrichtigung verwendet werden.
ANDLogik
Sie können mehrere Filter mithilfe von AND Logik kombinieren, indem Sie mehrere Einträge innerhalb des filters
Objekts im filterGroup
Array definieren. Im folgenden Beispiel ermitteln Filter, true
ob die Abonnementbenachrichtigung ein userId
Feld mit einem Wert enthält, 1
AND der group
dem Feldwert entweder Admin
oder entsprichtDeveloper
.
{ "filterGroup": [ { "filters" : [ { "fieldName" : "userId", "operator" : "eq", "value" : 1 }, { "fieldName" : "group", "operator" : "in", "value" : ["Admin", "Developer"] } ] } ] }
ODER-Logik
Sie können mehrere Filter mithilfe der OR-Logik kombinieren, indem Sie mehrere Filterobjekte innerhalb des filterGroup
Arrays definieren. Im folgenden Beispiel werten Filter aus, true
ob die Abonnementbenachrichtigung ein userId
Feld mit einem Wert enthält, der 1
ODER einem group
Feldwert von entweder Admin
oder entsprichtDeveloper
.
{ "filterGroup": [ { "filters" : [ { "fieldName" : "userId", "operator" : "eq", "value" : 1 } ] }, { "filters" : [ { "fieldName" : "group", "operator" : "in", "value" : ["Admin", "Developer"] } ] } ] }
Ausnahmen
Beachten Sie, dass es mehrere Einschränkungen für die Verwendung von Filtern gibt:
-
Im
filters
Objekt können maximal fünf eindeutigefieldName
Elemente pro Filter vorhanden sein. Das bedeutet, dass Sie maximal fünf einzelnefieldName
Objekte mithilfe von AND Logik kombinieren können. -
Für den
containsAny
Operator können maximal zwanzig Werte angegeben werden. -
Für die
notIn
Operatorenin
und können maximal fünf Werte angegeben werden. -
Jede Zeichenfolge kann maximal 256 Zeichen lang sein.
-
Bei jedem Zeichenkettenvergleich wird zwischen Groß- und Kleinschreibung unterschieden.
-
Die Filterung verschachtelter Objekte ermöglicht bis zu fünf verschachtelte Filterebenen.
-
Jede
filterGroup
kann maximal 10 haben.filters
Das bedeutet, dass Sie maximal 10filters
mithilfe der ODER-Logik kombinieren können.-
Der
in
Operator ist ein Sonderfall der OR-Logik. Im folgenden Beispiel gibt es zweifilters
:{ "filterGroup": [ { "filters" : [ { "fieldName" : "userId", "operator" : "eq", "value" : 1 }, { "fieldName" : "group", "operator" : "in", "value" : ["Admin", "Developer"] } ] } ] }
Die vorherige Filtergruppe wird wie folgt ausgewertet und auf die maximale Filtergrenze angerechnet:
{ "filterGroup": [ { "filters" : [ { "fieldName" : "userId", "operator" : "eq", "value" : 1 }, { "fieldName" : "group", "operator" : "eq", "value" : "Admin" } ] }, { "filters" : [ { "fieldName" : "userId", "operator" : "eq", "value" : 1 }, { "fieldName" : "group", "operator" : "eq", "value" : "Developer" } ] } ] }
-
Argument: invalidationJsonObject
Das invalidationJsonObject
definiert Folgendes:
-
subscriptionField
— Das GraphQL-Schemaabonnement, das ungültig werden soll. Ein einzelnes Abonnement, das als Zeichenfolge in der definiert istsubscriptionField
, wird für ungültig erklärt. -
payload
— Eine Liste mit Schlüssel-Wert-Paaren, die als Eingabe für die Ungültigerklärung von Abonnements verwendet wird, wenn der Invalidierungsfilter A anhand ihrer Werte auswertet.true
Im folgenden Beispiel werden abonnierte und verbundene Clients, die das Abonnement verwenden, ungültig gemacht, wenn der im
onUserDelete
Abonnement-Resolver definierte Invalidierungsfilter das Ergebnis anhand des Werts auswertet.true
payload
$extensions.invalidateSubscriptions({ "subscriptionField": "onUserDelete", "payload": { "group": "Developer" "type" : "Full-Time" } })