Passa al contenuto principale

GraphQL

Una Source di tipo GraphQL in Flowlyze è un job di ingresso schedulato che, in base alla pianificazione del flusso (es. cron), chiama un endpoint GraphQL, invia la richiesta (query o mutation) e mette in coda il payload di risposta per l'elaborazione. Estende il comportamento delle sorgenti HTTP e utilizza le impostazioni GraphQL del flusso per costruire la richiesta, inviarla e interpretare la risposta.

Consente di eseguire operazioni GraphQL verso endpoint accessibili via HTTP: il client specifica i dati desiderati e il server risponde con una struttura JSON che rispecchia la richiesta. Il trasporto tipico è HTTP (di solito POST) con body JSON.

Configurazione

ProprietàDescrizione
UrlURL completo dell'endpoint GraphQL (es. https://api.example.com/graphql). Non può essere vuoto.
MethodMetodo HTTP: GET o POST.
QueryStringa della query (o mutation) GraphQL. Non può essere vuota.
VariablesStringa JSON per le variabili della query.
OperationNameNome dell'operazione quando il documento contiene più operazioni.
HeadersHeader HTTP aggiunti alla richiesta (es. Authorization, X-Custom-Header).
HttpRequestAuthSettingsConfigurazione auth (es. bearer token, API key).
DataFieldJSON path per il campo "data" nella risposta GraphQL (JSONPath). Usato per estrarre il payload da mettere in coda.
ErrorsFieldJSON path per l'array "errors" nella risposta. Se presente e non vuoto, il job solleva un'eccezione con i messaggi di errore.

Gestione della risposta

La risposta di un endpoint GraphQL è in genere in formato JSON.

  • Errori HTTP: se lo status HTTP non è 2xx (es. 400, 401, 403, 429, 500), la richiesta è considerata fallita e viene sollevata un'eccezione (status, body e messaggio di errore).
  • Errori GraphQL: il job legge il token indicato da ErrorsField (default "errors"). Se è un array non vuoto, raccoglie il messaggio di ogni elemento e solleva: "Error in GraphQL: {messages}".
  • Extensions: se la root ha un token extensions, viene registrato a livello informativo (es. rate limit, costi query).
  • Estrazione dati: il token indicato da DataField (default "data") viene usato per costruire l'elenco di messaggi:
    • Array: ogni elemento (come JObject) viene messo in coda come un messaggio.
    • Oggetto: un solo JObject messo in coda come un messaggio.

Autenticazione

L'autenticazione è gestita come per la Source HTTP: Bearer token, API key, Basic Auth, OAuth2, JWT, ecc. (vedi sezione Http per le modalità supportate).