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
extensions contém um conjunto de métodos para realizar ações adicionais nos seus resolvedores.
extensions.evictFromApiCache(typeName: string, fieldName: string, keyValuePair: Record<string, string>) : 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. Para obter mais informações sobre armazenamento em cache, consulte Comportamento de cache.Exemplo 1:
Este exemplo remove os itens que foram armazenados em cache para um resolvedor chamado
Query.allClassesno qual uma chave de cache chamadacontext.arguments.semesterfoi usada. Quando a mutação é chamada e o resolvedor é executado, se uma entrada for limpa com sucesso, a resposta conterá um valorapiCacheEntriesDeletedno objeto de extensões que mostra quantas entradas foram excluídas.import { util, extensions } from '@aws-appsync/utils'; export const request = (ctx) => ({ payload: null }); export function response(ctx) { extensions.evictFromApiCache('Query', 'allClasses', { 'context.arguments.semester': ctx.args.semester, }); return null; }nota
Essa função 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 éfilterJsonObject(Mais informações sobre esse argumento podem ser encontradas abaixo na filterJsonObject seção Argumento:). Consulte Filtragem de assinatura avançada.nota
Você pode usar esse método de extensão somente no manipulador de resposta de um resolvedor de assinatura. Além disso, recomendamos usar
util.transform.toSubscriptionFilterpara criar seu filtro. 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 éfilterJsonObject(Mais informações sobre esse argumento podem ser encontradas abaixo na filterJsonObject seção Argumento:). Consulte Filtragem de assinatura avançada.nota
Você pode usar esse método de extensão somente no manipulador de resposta de um resolvedor de assinatura. Além disso, recomendamos usar
util.transform.toSubscriptionFilterpara criar seu filtro. extensions.invalidateSubscriptions(invalidationJsonObject)-
Usado para iniciar uma invalidação de assinatura a partir de uma mutação. O argumento é
invalidationJsonObject(Mais informações sobre esse argumento podem ser encontradas abaixo na invalidationJsonObject seção Argumento:).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 }
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.export const request = (ctx) => ({ payload: null }); export function response(ctx) { extensions.invalidateSubscriptions({ subscriptionField: 'onUserDelete', payload: { group: 'Developer', type: 'Full-Time' }, }); return ctx.result; }