Condividi tramite


GraphQL in Azure per sviluppatori JavaScript

GraphQL consente alle applicazioni JavaScript di recuperare esattamente i dati necessari con una singola richiesta. Questo articolo illustra che cos'è GraphQL, perché è possibile usarlo e come i servizi di Azure possono aiutare a creare applicazioni GraphQL con un impegno minimo. Indipendentemente dal fatto che si stia eseguendo la migrazione di un'applicazione GraphQL esistente o si stia creando una nuova applicazione, Azure offre strumenti e servizi per semplificare il processo.

Che cos'è GraphQL?

GraphQL è un modo moderno per comunicare con server e database dell'applicazione Web. Si consideri un modo più intelligente per richiedere esattamente le informazioni necessarie:

  • È come ordinare un pasto personalizzato invece di accettare un menu fisso - si chiede esattamente quello che si desidera
  • Funziona bene con applicazioni JavaScript come React, Vue o Angular
  • Può rendere le app Web più veloci e facili da compilare

Invece di effettuare più richieste a endpoint server diversi (ad esempio con le API REST tradizionali, il modo standard in cui la maggior parte dei servizi Web comunica), GraphQL consente di effettuare una richiesta precisa per ottenere tutti i dati necessari.

Perché usare GraphQL nell'app Web?

GraphQL migliora le applicazioni JavaScript in tre modi principali:

  • Ottieni esattamente ciò di cui hai bisogno: l'app può richiedere solo i dati necessari in questo momento, non più, non meno. Questo è come andare a un buffet e prendere solo quello che si mangia, invece di essere servito un grande pasto fisso dove la maggior parte viene sprecata. In questo modo l'app risulta più veloce perché scarica meno dati.

  • Una richiesta invece di molte: sono necessarie informazioni da più posizioni? Invece di effettuare 5 richieste diverse a 5 endpoint diversi, GraphQL consente di effettuare una sola richiesta per ottenere tutto. Questo è come avere una persona raccogliere tutti i tuoi acquisti invece di andare a cinque negozi diversi.

  • Meno errori con strumenti migliori: GraphQL include strumenti che consentono di intercettare gli errori durante la codifica anziché quando l'app è in esecuzione. È come avere il controllo ortografico che funziona durante la digitazione, invece di individuare gli errori di digitazione dopo aver pubblicato il documento.

Durante la compilazione con GraphQL e JavaScript, è probabile che si usi uno di questi strumenti più diffusi:

  • Client Apollo: il client GraphQL più diffuso che funziona con React, Vue, Angular e JavaScript normale.
  • URQL: alternativa leggera con buone prestazioni.
  • Relay: creato da Facebook (che ha creato anche GraphQL), è particolarmente adatto a grandi applicazioni React.

Servizi di Azure per applicazioni GraphQL

Scegliere l'approccio in base al proprio scenario specifico:

Se vuoi... Allora dovresti... Uso di questi servizi di Azure
Portare un'app GraphQL esistente in Azure Distribuire l'applicazione senza modificare il codice Servizio app di Azure o app di Azure Container
Aggiungere GraphQL ai dati esistenti Creare endpoint GraphQL per i dati con codifica minima Generatore API dati
Creare un livello API GraphQL Creare un'interfaccia GraphQL unificata sulle API esistenti Gestione API di Azure con la trasformazione GraphQL

Ospitare applicazioni GraphQL in Azure

Sono disponibili alcune opzioni valide a seconda del tipo di applicazione che si sta creando:

  • Servizio app: si tratta di un servizio di hosting Web tradizionale, ma con funzionalità aggiuntive. È ideale per la maggior parte delle applicazioni JavaScript che richiedono un server.

  • App contenitore: se l'applicazione viene inserita in un pacchetto in contenitori (ad esempio Docker), questo servizio semplifica l'esecuzione e il ridimensionamento.

Archiviazione dei dati per le applicazioni GraphQL

GraphQL deve connettersi ai dati. Azure offre diversi modi per eseguire questa operazione:

  • Trasformare il database in un'API GraphQL: lo strumento "Generatore API dati" può creare automaticamente un endpoint GraphQL (un URL in cui l'app può inviare richieste GraphQL) dal database esistente, senza dover scrivere codice.

  • Archiviare i dati: Azure offre database per esigenze diverse:

    • Database SQL: per i dati tradizionali basati su tabelle
    • Cosmos DB: per l'archiviazione dati flessibile e scalabile senza schemi rigidi

Proteggere le applicazioni GraphQL

  • Accesso utente e sicurezza: La piattaforma di identità di Azure consente di aggiungere funzionalità di accesso all'applicazione in modo che solo le persone giuste possano accedere ai dati graphQL.
  • Accesso in base al ruolo: controllare esattamente quali utenti possono eseguire query o modificare i dati tramite gli endpoint GraphQL.
  • Protezione API: aggiungere la limitazione della frequenza e il monitoraggio per evitare abusi delle API GraphQL.

Creare API GraphQL per i dati esistenti

Sono già disponibili dati in Azure e si vuole accedervi con GraphQL? È possibile eseguire questa operazione in modo semplice:

  • Gestione API: questo servizio può creare un livello GraphQL davanti alle API o alle origini dati esistenti. È come aggiungere un traduttore GraphQL ai sistemi che non parlano GraphQL in modo nativo.

  • Generatore API dati: questo strumento crea automaticamente endpoint GraphQL dai database. È il modo più rapido per aggiungere GraphQL ai dati esistenti, basta puntare al database e funziona automaticamente.

Esempio semplice: Creazione di un'API GraphQL per un database di prodotti

Ecco come funziona il processo in termini semplici:

  1. Si dispone di un database con informazioni sul prodotto (nomi, prezzi, descrizioni)
  2. Hai configurato il Generatore API dati per connetterti al database
  3. Generatore API dati crea automaticamente un endpoint GraphQL
  4. L'applicazione JavaScript può ora eseguire query GraphQL come:
{
  products(where: { price_lt: 50 }) {
    name
    price
    description
  }
}

Questa query consente di ottenere tutti i prodotti con $50, visualizzando solo i nomi, i prezzi e le descrizioni.

Risorse utili per iniziare

Per altre informazioni o iniziare a creare con GraphQL in Azure, ecco alcune risorse utili:

Passaggi successivi