As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Extensões
nota
Agora, oferecemos suporte principalmente ao runtime do APPSYNC_JS e sua documentação. Considere usar o runtime do APPSYNC_JS e seus guias aqui.
$extensions contém um conjunto de métodos para realizar ações adicionais em seus resolvedores.
$extensions.evictFromApiCache(String, String, Object) : Object-
Elimina um item do cache do lado do AWS AppSync servidor. O primeiro argumento é o nome do tipo. O segundo argumento é o nome do campo. O terceiro argumento é um objeto contendo itens do par de chave/valor que especificam o valor da chave de armazenamento em cache. Você deve colocar os itens no objeto na mesma ordem das chaves de cache em
cachingKeydo resolvedor em cache.nota
Esse utilitário funciona somente para mutações, não para consultas.
$extensions.setSubscriptionFilter(filterJsonObject)-
Define filtros de assinatura aprimorados. Cada evento de notificação de assinatura é avaliado em relação aos filtros de assinatura fornecidos e envia notificações aos clientes se todos os filtros forem avaliados como
true. O argumento éfilterJsonObjectconforme descrito na seção a seguir.nota
Você pode usar esse método de extensão somente nos modelos de mapeamento de resposta de um resolvedor de assinatura.
$extensions.setSubscriptionInvalidationFilter(filterJsonObject)-
Define os filtros de invalidação da assinatura. Os filtros de assinatura são avaliados em relação à carga de invalidação e, em seguida, invalidam determinada assinatura se os filtros forem avaliados como
true. O argumento éfilterJsonObjectconforme descrito na seção a seguir.nota
Você pode usar esse método de extensão somente nos modelos de mapeamento de resposta de um resolvedor de assinatura.
$extensions.invalidateSubscriptions(invalidationJsonObject)-
Usado para iniciar uma invalidação de assinatura a partir de uma mutação. O argumento é
invalidationJsonObjectconforme descrito na seção a seguir.nota
Essa extensão pode ser usada somente nos modelos de mapeamento de resposta dos resolvedores de mutação.
Você só pode usar no máximo cinco chamadas de método
$extensions.invalidateSubscriptions()exclusivas em uma única solicitação. Se você exceder esse limite, receberá um erro do GraphQL.
Argumento: filterJsonObject
O objeto JSON define filtros de assinatura ou de invalidação. É uma série de filtros em um filterGroup. Cada filtro é uma coleção de filtros individuais.
{ "filterGroup": [ { "filters" : [ { "fieldName" : "userId", "operator" : "eq", "value" : 1 } ] }, { "filters" : [ { "fieldName" : "group", "operator" : "in", "value" : ["Admin", "Developer"] } ] } ] }
Cada filtro tem três atributos:
-
fieldName– O campo do esquema GraphQL. -
operator– O tipo de operador. -
value– Os valores a serem comparados com o valorfieldNameda notificação de assinatura.
Veja a seguir um exemplo de atribuição desses atributos:
{ "fieldName" : "severity", "operator" : "le", "value" : $context.result.severity }
Campo: fieldName
O tipo de string fieldName refere-se a um campo definido no esquema GraphQL que corresponde a fieldName na carga de notificação de assinatura. Quando uma correspondência é encontrada, o value do campo do esquema GraphQL é comparado a value do filtro de notificação de assinatura. No exemplo a seguir, o filtro fieldName corresponde ao campo service definido em determinado tipo de GraphQL. Se a carga de notificação contiver um campo service com um value equivalente a AWS
AppSync, o filtro será avaliado como true:
{ "fieldName" : "service", "operator" : "eq", "value" : "AWS AppSync" }
Campo: valor
O valor pode ser de um tipo diferente com base no operador:
-
Um único número ou booleano
-
Exemplo de string:
"test","service" -
Exemplo de número:
1,2,45.75 -
Exemplo de booliano:
true,false
-
-
Pares de números ou strings
-
Exemplo de par de strings:
["test1","test2"],["start","end"] -
Exemplo de par de números:
[1,4],[67,89],[12.45, 95.45]
-
-
Matrizes de números ou strings
-
Exemplo de matriz de strings:
["test1","test2","test3","test4","test5"] -
Exemplo de matriz numérica:
[1,2,3,4,5],[12.11,46.13,45.09,12.54,13.89]
-
Campo: operador
Uma string que diferencia maiúsculas de minúsculas com os seguintes valores possíveis:
| Operador | Descrição | Tipos de valores possíveis |
|---|---|---|
| eq | Equal | inteiro, flutuante, string, booleano |
| um | Not equal | inteiro, flutuante, string, booleano |
| le | Menor ou igual a | inteiro, flutuante, string |
| lt | Menor que | inteiro, flutuante, string |
| idade | Maior ou igual a | inteiro, flutuante, string |
| gt | Maior que | inteiro, flutuante, string |
| contém | Verifica se há uma subsequência ou valor no conjunto. | inteiro, flutuante, string |
| NÃO contém | Verifica a ausência de uma subsequência ou ausência de um valor no conjunto. | inteiro, flutuante, string |
| Começa com | Verifica se há um prefixo. | string |
| in | Verifica os elementos correspondentes que estão na lista. | Matriz de números inteiros, flutuantes ou strings |
| notIn | Verifica se há elementos correspondentes que não estão na lista. | Matriz de números inteiros, flutuantes ou strings |
| entre | Entre dois valores | inteiro, flutuante, string |
| Contém qualquer | Contém elementos comuns | inteiro, flutuante, string |
A tabela a seguir descreve como cada operador é usado na notificação de assinatura.
Lógica AND
Você pode combinar vários filtros usando a lógica AND definindo várias entradas dentro do objeto filters na matriz filterGroup. No exemplo a seguir, os filtros avaliam como true se a notificação de assinatura tem um campo userId com um valor equivalente a 1 AND um valor de campo group de Admin ou Developer.
{ "filterGroup": [ { "filters" : [ { "fieldName" : "userId", "operator" : "eq", "value" : 1 }, { "fieldName" : "group", "operator" : "in", "value" : ["Admin", "Developer"] } ] } ] }
Lógica OR
Você pode combinar vários filtros usando a lógica OR definindo vários objetos de filtro na matriz filterGroup. No exemplo a seguir, os filtros avaliam como true se a notificação de assinatura tem um campo userId com um valor equivalente a 1 OR um valor de campo group de Admin ou Developer.
{ "filterGroup": [ { "filters" : [ { "fieldName" : "userId", "operator" : "eq", "value" : 1 } ] }, { "filters" : [ { "fieldName" : "group", "operator" : "in", "value" : ["Admin", "Developer"] } ] } ] }
Exceções
Observe que existem várias restrições para o uso de filtros:
-
No objeto
filters, pode haver no máximo cinco itensfieldNameexclusivos por filtro. Isso significa que você pode combinar no máximo cinco objetos individuaisfieldNameusando a lógica AND. -
Pode haver no máximo vinte valores para o operador
containsAny. -
Pode haver no máximo cinco valores para os operadores
inenotIn. -
Cada string pode ter no máximo 256 caracteres.
-
Cada comparação de string diferencia maiúsculas e minúsculas.
-
A filtragem de objetos aninhados permite até cinco níveis aninhados de filtragem.
-
Cada
filterGrouppode ter no máximo 10filters. Isso significa que você pode combinar no máximo 10filtersusando a lógica OR.-
O operador
iné um caso especial da lógica OR. No exemplo a seguir, existem doisfilters:{ "filterGroup": [ { "filters" : [ { "fieldName" : "userId", "operator" : "eq", "value" : 1 }, { "fieldName" : "group", "operator" : "in", "value" : ["Admin", "Developer"] } ] } ] }O grupo de filtros anterior é avaliado da seguinte forma e conta para o limite máximo de filtros:
{ "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" } ] } ] }
-
Argumento: invalidationJsonObject
O invalidationJsonObject define o seguinte:
-
subscriptionField– A assinatura do esquema GraphQL a ser invalidada. Uma única assinatura, definida como uma string emsubscriptionField, é considerada invalidada. -
payload– Uma lista de pares de valores-chave que é usada como entrada para invalidar assinaturas se o filtro de invalidação for avaliado comotrueem relação aos seus valores.O exemplo a seguir invalida clientes inscritos e conectados usando a assinatura de
onUserDeletequando o filtro de invalidação definido no resolvedor de assinatura é avaliado comotrueem relação ao valorpayload.$extensions.invalidateSubscriptions({ "subscriptionField": "onUserDelete", "payload": { "group": "Developer" "type" : "Full-Time" } })