Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
extensions
contiene un conjunto de métodos para realizar acciones adicionales en sus solucionadores.
extensions.evictFromApiCache(typeName: string, fieldName: string, keyValuePair: Record<string, string>) : Object
-
Expulsa un elemento de la memoria caché del AWS AppSync servidor. El primer argumento es el nombre de tipo. El segundo argumento es el nombre de campo. El tercer argumento es un objeto que contiene elementos de pares clave-valor que especifican el valor clave de almacenamiento en caché. Debe colocar los elementos del objeto en el mismo orden que las claves de almacenamiento en caché del elemento
cachingKey
del solucionador almacenado en caché. Para obtener más información acerca del almacenamiento en caché, consulte la sección sobre el comportamiento de almacenamiento en caché.Ejemplo 1:
En este ejemplo, se expulsan los elementos que se almacenaron en caché para un solucionador llamado
Query.allClasses
en el que se usó una clave de almacenamiento en caché denominadacontext.arguments.semester
. Cuando se llama a la mutación y se ejecuta el solucionador, si una entrada se borra correctamente, la respuesta contiene un valorapiCacheEntriesDeleted
en el objeto de extensiones que muestra cuántas entradas se eliminaron.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
Esta función solo funciona para mutaciones, no para consultas.
extensions.setSubscriptionFilter(filterJsonObject)
-
Define filtros de suscripción mejorados. Cada evento de notificación de suscripción se evalúa con respecto a los filtros de suscripción proporcionados y envía notificaciones a los clientes si todos los filtros se evalúan como
true
. El argumento esfilterJsonObject
(puede encontrar más información sobre este argumento a continuación, en la filterJsonObject sección Argumento:). Consulte el artículo sobre filtrado de suscripciones mejorado.nota
Puede usar esta función de extensión solo en el controlador de respuestas de un solucionador de suscripción. Además, recomendamos usar
util.transform.toSubscriptionFilter
para crear su filtro. extensions.setSubscriptionInvalidationFilter(filterJsonObject)
-
Define los filtros de invalidación de suscripciones. Los filtros de suscripción se evalúan con respecto a la carga de invalidación y, a continuación, invalidan una suscripción determinada si los filtros se evalúan como
true
. El argumento esfilterJsonObject
(puede encontrar más información sobre este argumento a continuación, en la filterJsonObject sección Argumento:). Consulte el artículo sobre filtrado de suscripciones mejorado.nota
Puede usar esta función de extensión solo en el controlador de respuestas de un solucionador de suscripción. Además, recomendamos usar
util.transform.toSubscriptionFilter
para crear su filtro. extensions.invalidateSubscriptions(invalidationJsonObject)
-
Se utiliza para iniciar la invalidación de una suscripción a partir de una mutación. El argumento es
invalidationJsonObject
(puede encontrar más información sobre este argumento a continuación, en la invalidationJsonObject sección Argumento:).nota
Esta extensión solo se puede usar en las plantillas de mapeo de respuestas de los solucionadores de mutaciones.
Solo puede usar como máximo cinco llamadas al método
extensions.invalidateSubscriptions()
únicas en una sola solicitud. Si supera este límite, recibirá un error de GraphQL.
Argumento: filterJsonObject
El objeto JSON define los filtros de suscripción o invalidación. Es una matriz de filtros en un filterGroup
. Cada filtro es una colección de filtros individuales.
{
"filterGroup": [
{
"filters" : [
{
"fieldName" : "userId",
"operator" : "eq",
"value" : 1
}
]
},
{
"filters" : [
{
"fieldName" : "group",
"operator" : "in",
"value" : ["Admin", "Developer"]
}
]
}
]
}
Cada filtro tiene tres atributos:
-
fieldName
: campo de esquema de GraphQL. -
operator
: tipo de operador. -
value
: valores que se van a comparar con el valorfieldName
de notificación de suscripción.
A continuación se muestra un ejemplo de asignación de estos atributos:
{
"fieldName" : "severity",
"operator" : "le",
"value" : context.result.severity
}
Argumento: invalidationJsonObject
El invalidationJsonObject
define lo siguiente:
-
subscriptionField
: suscripción del esquema de GraphQL a invalidar. Se baraja la posibilidad de invalidar una suscripción única, definida como cadena en elsubscriptionField
. -
payload
: lista de pares clave-valor que se utiliza como entrada para la invalidación de suscripciones si el filtro de invalidación se evalúa comotrue
en comparación con sus valores.En el siguiente ejemplo se invalida a los clientes suscritos y conectados que utilizan la suscripción
onUserDelete
cuando el filtro de invalidación definido en el solucionador de suscripción se evalúa comotrue
en comparación con el valorpayload
.export const request = (ctx) => ({ payload: null }); export function response(ctx) { extensions.invalidateSubscriptions({ subscriptionField: 'onUserDelete', payload: { group: 'Developer', type: 'Full-Time' }, }); return ctx.result; }