Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Estensioni
extensionscontiene una serie di metodi per eseguire azioni aggiuntive all'interno dei resolver.
extensions.evictFromApiCache(typeName: string, fieldName: string, keyValuePair: Record<string, any>) : Object-
Elimina un elemento dalla cache lato server. AWS AppSync Il primo argomento è il nome del tipo. Il secondo argomento è il nome del campo. Il terzo argomento è un oggetto contenente elementi di coppia chiave-valore che specificano il valore della chiave di memorizzazione nella cache. È necessario inserire gli elementi nell'oggetto nello stesso ordine delle chiavi di memorizzazione nella cache dei resolver memorizzati nella cache.
cachingKeyPer ulteriori informazioni sulla memorizzazione nella cache, vedere Comportamento nella cache. https://docs.aws.amazon.com/appsync/latest/devguide/enabling-caching.html#caching-behaviorEsempio 1:
Questo esempio rimuove gli elementi che sono stati memorizzati nella cache per un resolver chiamato
Query.allClassessul quale è stata utilizzata una chiave di memorizzazione nella cache chiamata.context.arguments.semesterQuando viene chiamata la mutazione e il resolver viene eseguito, se una voce viene cancellata correttamente, la risposta contiene unapiCacheEntriesDeletedvalore nell'oggetto extensions che mostra quante voci sono state eliminate.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
Questa funzione funziona solo per le mutazioni, non per le query.
extensions.setSubscriptionFilter(filterJsonObject)-
Definisce filtri di abbonamento avanzati. Ogni evento di notifica dell'abbonamento viene valutato in base ai filtri di abbonamento forniti e invia notifiche ai client se tutti i filtri lo consentono
true. L'argomento èfilterJsonObject(ulteriori informazioni su questo argomento sono disponibili di seguito nella JsonObject sezione Argomento: filtro). Vedi Filtraggio avanzato delle sottoscrizioni.Nota
È possibile utilizzare questa funzione di estensione solo nel gestore delle risposte di un risolutore di sottoscrizioni. Inoltre, ti consigliamo di
util.transform.toSubscriptionFilterutilizzarlo per creare il filtro. extensions.setSubscriptionInvalidationFilter(filterJsonObject)-
Definisce i filtri di invalidazione dell'abbonamento. I filtri di abbonamento vengono valutati in base al payload di invalidazione, quindi invalidano un determinato abbonamento se i filtri danno esito positivo.
trueL'argomento èfilterJsonObject(ulteriori informazioni su questo argomento sono disponibili di seguito nella sezione Argomento: filtro). JsonObject Vedi Filtraggio avanzato delle sottoscrizioni.Nota
È possibile utilizzare questa funzione di estensione solo nel gestore delle risposte di un risolutore di sottoscrizioni. Inoltre, ti consigliamo di
util.transform.toSubscriptionFilterutilizzarlo per creare il filtro. extensions.invalidateSubscriptions(invalidationJsonObject)-
Utilizzato per avviare l'annullamento di un abbonamento a seguito di una mutazione. L'argomento è
invalidationJsonObject(Ulteriori informazioni su questo argomento sono disponibili di seguito nella sezione Argomento: JsonObject invalidazione.).Nota
Questa estensione può essere utilizzata solo nei modelli di mappatura delle risposte dei risolutori di mutazioni.
È possibile utilizzare solo un massimo di cinque chiamate di
extensions.invalidateSubscriptions()metodo univoche in una singola richiesta. Se superi questo limite, riceverai un errore GraphQL.
Argomento: filtro JsonObject
L'oggetto JSON definisce i filtri di sottoscrizione o di invalidazione. È una serie di filtri in un. filterGroup Ogni filtro è una raccolta di singoli filtri.
{ "filterGroup": [ { "filters" : [ { "fieldName" : "userId", "operator" : "eq", "value" : 1 } ] }, { "filters" : [ { "fieldName" : "group", "operator" : "in", "value" : ["Admin", "Developer"] } ] } ] }
Ogni filtro ha tre attributi:
-
fieldName— Il campo dello schema GraphQL. -
operator— Il tipo di operatore. -
value— I valori da confrontare con ilfieldNamevalore di notifica dell'abbonamento.
Di seguito è riportato un esempio di assegnazione di questi attributi:
{ "fieldName" : "severity", "operator" : "le", "value" : context.result.severity }
Argomento: invalidazione JsonObject
invalidationJsonObjectDefinisce quanto segue:
-
subscriptionField— La sottoscrizione allo schema GraphQL da invalidare. Una singola sottoscrizione, definita come una stringa insubscriptionField, viene considerata invalidata. -
payload— Un elenco di coppie chiave-valore utilizzato come input per invalidare le sottoscrizioni se il filtro di invalidazione viene valutato in base ai relativi valori.trueL'esempio seguente invalida i client abbonati e connessi che utilizzano l'abbonamento quando il filtro di invalidazione definito nel risolutore di
onUserDeletesottoscrizioni restituisce il risultato in base al valore.truepayloadexport const request = (ctx) => ({ payload: null }); export function response(ctx) { extensions.invalidateSubscriptions({ subscriptionField: 'onUserDelete', payload: { group: 'Developer', type: 'Full-Time' }, }); return ctx.result; }