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à.
Configurazione dei resolver in AWS AppSync
Nelle sezioni precedenti, hai imparato a creare lo schema e l'origine dati GraphQL, quindi a collegarli insieme nel AWS AppSync servizio. Nel vostro schema, potreste aver stabilito uno o più campi (operazioni) nella query e nella mutazione. Sebbene lo schema descrivesse i tipi di dati che le operazioni avrebbero richiesto alla fonte dei dati, non ha mai implementato il modo in cui tali operazioni si sarebbero comportate rispetto ai dati.
Il comportamento di un'operazione è sempre implementato nel resolver, che sarà collegato al campo che esegue l'operazione. Per ulteriori informazioni sul funzionamento dei resolver in generale, consulta la pagina Resolver.
In AWS AppSync, il tuo resolver è legato a un runtime, che è l'ambiente in cui viene eseguito il tuo resolver. I runtime determinano la lingua in cui verrà scritto il resolver. Attualmente sono supportati due runtime: APPSYNC _JS (JavaScript) e Apache Velocity Template Language (). VTL
Quando si implementano i resolver, esiste una struttura generale che seguono:
-
Prima della fase: quando viene effettuata una richiesta dal client, ai resolver per i campi dello schema utilizzati (in genere le query, le mutazioni, le sottoscrizioni) vengono trasmessi i dati della richiesta. Il resolver inizierà a elaborare i dati della richiesta con un gestore del passaggio precedente, che consente di eseguire alcune operazioni di preelaborazione prima che i dati passino attraverso il resolver.
-
Funzione/i: dopo l'esecuzione del passaggio precedente, la richiesta viene passata all'elenco delle funzioni. La prima funzione dell'elenco verrà eseguita sulla fonte di dati. Una funzione è un sottoinsieme del codice del resolver contenente il proprio gestore di richieste e risposte. Un gestore di richieste prenderà i dati della richiesta ed eseguirà operazioni sulla fonte dei dati. Il gestore della risposta elaborerà la risposta dell'origine dati prima di restituirla all'elenco. Se è presente più di una funzione, i dati della richiesta verranno inviati alla funzione successiva nell'elenco da eseguire. Le funzioni nell'elenco verranno eseguite in serie nell'ordine definito dallo sviluppatore. Una volta eseguite tutte le funzioni, il risultato finale viene passato alla fase successiva.
-
Dopo la fase: la fase successiva è una funzione di gestione che consente di eseguire alcune operazioni finali sulla risposta finale della funzione prima di passarla alla risposta GraphQL.
Questo flusso è un esempio di risolutore di pipeline. I resolver di pipeline sono supportati in entrambi i runtime. Tuttavia, questa è una spiegazione semplificata di cosa possono fare i resolver di pipeline. Inoltre, stiamo descrivendo solo una possibile configurazione del resolver. Per ulteriori informazioni sulle configurazioni dei resolver supportate, consulta la panoramica dei resolver per JavaScript _JS o la panoramica del modello di mappatura Resolver perAPPSYNC. VTL
Come puoi vedere, i resolver sono modulari. Affinché i componenti del resolver funzionino correttamente, devono essere in grado di esaminare lo stato di esecuzione da altri componenti. Dalla sezione Resolver, sapete che a ogni componente del resolver possono essere trasmesse informazioni vitali sullo stato dell'esecuzione sotto forma di un insieme di argomenti (,, ecc.). args
context
Nel AWS AppSync, questo è gestito rigorosamente da. context
È un contenitore per le informazioni sul campo da risolvere. Ciò può includere qualsiasi cosa, dagli argomenti passati, ai risultati, ai dati di autorizzazione, ai dati di intestazione, ecc. Per ulteriori informazioni sul contesto, vedere il riferimento al contesto dell'oggetto Resolver per APPSYNC _JS o il riferimento al contesto del modello di mappatura Resolver per. VTL
Il contesto non è l'unico strumento che puoi usare per implementare il tuo resolver. AWS AppSync supporta un'ampia gamma di utilità per la generazione di valore, la gestione degli errori, l'analisi, la conversione, ecc. Puoi vedere un elenco di utilità qui per APPSYNC _JS o qui per. VTL
Nelle sezioni seguenti, imparerai come configurare i resolver nel tuo GraphQL. API