Condividi tramite


Aggiungere un'API GraphQL sintetica e configurare i sistemi di risoluzione di campi

SI APPLICA A: tutti i livelli di Gestione API

In Gestione API, è possibile aggiungere un'API GraphQL in uno dei due modelli: effettuare il pass-through a un endpoint GraphQL esistente o importare uno schema GraphQL e creare un'API GraphQL sintetica con sistemi di risoluzione di campi personalizzati. Per ulteriori informazioni, consultare la panoramica di GraphQL.

Note

Attualmente, questa funzionalità non è disponibile nelle aree di lavoro.

Contenuto dell'articolo:

  • Importare uno schema GraphQL nell'istanza di Gestione API di Azure.
  • Configurare un sistema di risoluzione per una query GraphQL usando un endpoint HTTP esistente.
  • Testare l'API GraphQL.

Per esporre un endpoint GraphQL esistente come API, vedere Importare un'API GraphQL.

Prerequisiti

  • Un'istanza di API Management esistente. Crearne una se non è già stato fatto.
  • File di schema GraphQL valido con l'estensione .graphql.
  • Un endpoint GraphQL back-end è facoltativo per questo scenario.

Passare all'istanza di Gestione API

  1. Nel portale di Azure cercare e selezionare Servizi gestione API:

    Screenshot che mostra i servizi gestione API nei risultati della ricerca.

  2. Nella pagina Servizi Gestione API selezionare l'istanza di Gestione API:

    Screenshot che mostra un'istanza di Gestione API nella pagina Servizi Gestione API.

Aggiungere uno schema GraphQL

  1. Nel riquadro sinistro, in API, selezionare API.

  2. In Definisci una nuova API selezionare il riquadro GraphQL .

    Screenshot della selezione del riquadro GraphQL.

  3. Nella finestra di dialogo selezionare Full e quindi immettere i valori nei campi obbligatori, come descritto nella tabella seguente.

    Screenshot della pagina Creare dallo schema GraphQL.

    Value Descrizione
    Nome visualizzato Il nome con cui verrà visualizzata l'API GraphQL.
    Nome Nome non elaborato dell'API GraphQL. Si popola automaticamente durante la digitazione del nome visualizzato.
    Tipo GraphQL Selezionare GraphQL sintetico da importare da un file di schema GraphQL.
    Eseguire il fallback dell'endpoint GraphQL Facoltativamente, immettere un URL con un nome endpoint dell'API GraphQL. Gestione API passa query GraphQL a questo endpoint quando un sistema di risoluzione personalizzato non è impostato per un campo.
    Descrizione Aggiungere una descrizione dell'API.
    Schema URL Selezionare uno schema basato sull'endpoint GraphQL. Selezionare una delle opzioni che includono uno schema WebSocket (WS o WSS) se l'API GraphQL include il tipo di sottoscrizione. La selezione predefinita è HTTP(S).
    Suffisso dell'URL dell'API Aggiungere un suffisso URL per identificare l'API specifica nell'istanza di Gestione API. Deve essere univoco nell'istanza di Gestione API.
    URL di base Campo non modificabile che visualizza l'URL di base dell'API.
    Tag Facoltativamente, associare l'API GraphQL ai tag nuovi o esistenti.
    Prodotti Associare l'API GraphQL a un prodotto per pubblicarlo.
    Assegnare un numero di versione a questa API? Selezionare la casella di controllo per applicare uno schema di controllo delle versioni all'API GraphQL.
  4. Selezionare Crea.

  5. Dopo aver creato l'API, esaminare o modificare lo schema nella scheda Schema .

Configurare un sistema di risoluzione

Configurare un sistema di risoluzione per eseguire il mapping di un campo dello schema a un endpoint HTTP esistente. I passaggi generali sono disponibili qui. Per informazioni dettagliate, vedere Configurare un sistema di risoluzione GraphQL.

Si supponga di aver importato lo schema GraphQL seguente e di voler configurare un sistema di risoluzione per la users query.

type Query {
    users: [User]
}

type User {
    id: String!
    name: String!
}
  1. Nel riquadro sinistro, in API, selezionare API.

  2. Selezionare l'API GraphQL.

  3. Nella scheda Schema esaminare lo schema per un campo in un tipo di oggetto in cui si vuole configurare un sistema di risoluzione.

    1. Selezionare un campo e quindi passare il puntatore del mouse nel margine sinistro.

    2. Selezionare Aggiungi resolver.

      Screenshot dell'aggiunta di un resolver GraphQL nel portale.

  4. Nel riquadro Crea sistema di risoluzione :

    1. Aggiornare la proprietà Nome se si desidera immettere facoltativamente una Descrizione e confermare o aggiornare le selezioni Tipo e Campo.
    2. In Origine dati selezionare API HTTP.
  5. Nell'editor dei criteri del sistema di risoluzione aggiornare l'elemento <http-data-source> con gli elementi figlio dello scenario. Ad esempio, il sistema di risoluzione seguente recupera il users campo effettuando una GET chiamata a un'origine dati HTTP esistente.

        <http-data-source>
            <http-request>
                <set-method>GET</set-method>
                <set-url>https://myapi.contoso.com/users</set-url>
            </http-request>
        </http-data-source>
    

    Screenshot della configurazione di un criterio per un resolver nel portale.

  6. Selezionare Crea.

  7. Per risolvere i dati per un altro campo nello schema, ripetere i passaggi precedenti per creare un altro sistema di risoluzione.

Suggerimento

Quando si modifica un criterio del sistema di risoluzione, selezionare Esegui test per controllare l'output dell'origine dati, che è possibile convalidare in base allo schema. Se si verificano errori, la risposta include informazioni sulla risoluzione dei problemi.

Testare l'API GraphQL

  1. Passare all'istanza di Gestione API.

  2. Nel riquadro sinistro, nella sezione API selezionare API.

  3. In Tutte le API, selezionare l'API GraphQL.

  4. Selezionare la scheda Test per accedere alla console di test.

  5. In Intestazioni:

    1. Selezionare l'intestazione dal menu Nome .
    2. Immettere il valore nella casella Valore .
    3. Aggiungere altre intestazioni selezionando Aggiungi intestazione.
    4. Eliminare le intestazioni usando il pulsante Cestino.
  6. Se è stato aggiunto un prodotto all'API GraphQL, aggiungere un ambito di prodotto in Applica ambito prodotto.

  7. Nell'editor di query eseguire una delle operazioni seguenti:

    1. Selezionare almeno un campo o un sottocampo dall'elenco nel menu a sinistra dell'editor. I campi e i sottocampi selezionati vengono visualizzati nell'editor query.

    2. Iniziare a digitare nell'editor query per comporre una query.

      Screenshot dell'editor di query.

  8. In Variabili di query, aggiungere variabili per riutilizzare la stessa query o la stessa mutazione e passare valori diversi.

  9. Selezionare Send (Invia).

  10. Visualizzare la risposta.

    Screenshot della risposta alla query di test.

  11. Ripetere i passaggi precedenti per testare payload diversi.

  12. Al termine dei test, uscire dalla console di test.

Proteggere l'API GraphQL

Proteggere l’API GraphQL applicando sia i criteri di autenticazione e autorizzazione sia un criterio di convalida di GraphQL per la protezione da attacchi specifici per GraphQL.