Azure API Management è un servizio completo che consente alle aziende di pubblicare, proteggere e gestire le loro API in modo efficiente e scalabile. Fornisce un gateway sicuro per l'esposizione delle API, consentendo agli sviluppatori di accedere alle risorse aziendali in modo controllato. Con funzionalità avanzate come l'autenticazione, l'autorizzazione e l'analisi del traffico, Azure API Management semplifica l'integrazione e la distribuzione delle API, consentendo alle organizzazioni di creare e gestire un ecosistema di API robusto e affidabile.
Essendo un gateway, il servizio si presta anche a fare da tramite per convertire modi diversi, come da XML a JSON e viceversa, ma anche per rendere REST quello che non è. Tra le tante funzionalità è presente anche il supporto a GraphQL, un linguaggio che ci permette di fare query e manipolazioni su servizi in maniera molto potente e flessibile.
Non tutto però nasce con il supporto a questo sistema di interrogazione, perciò in Azure API Management è possibile creare delle istanze di API Syntetic GraphQL, rendendo un qualsiasi backend di fatto un servizio interrogabile tramite GraphQL. Ci pensa il gateway, infatti, ad estrapolare solo le informazioni chieste o ad aggregarle effettuando più chiamate.
L'idea è quella di dare le informazioni necessarie affinché il servizio possa trasformare le informazioni e le operazioni. Quando creiamo un'API di questo tipo ci viene quindi chiesto lo schema GraphQL che descrive il nostro endpoint.

Ne creiamo uno che rispecchia il JSON che un ipotetico servizio Todo restituisce o accetta per la creazione degli elementi, come il seguente.
type TodoItem { id: ID! title: String! completed: Boolean } type Query { getAll: [TodoItem!]! } type Mutation { create(title: String!): TodoItem } schema { query: Query mutation: Mutation }
Non entriamo nei dettagli dello schema i cui scopi esulano da questo script, ma sostanzialmente stiamo modellando i dati e definendo le operazioni esposte.
Creiamo l'API e andiamo nella sezione resolvers, indipensabili per poter effettuare l'operazione reale. Ne creiamo uno dedicato che effettua una chiamata HTTP in GET al backend, come mostrato in figura.

Fatto questo possiamo procedere a provare l'API, direttamente dall'interfaccia di gestione. Troviamo infatti le operazioni secondo lo schema esposto e un supporto grafico all'indicazione di quali operazioni fare e quali campi estrarre. Premiamo Send e otteniamo il risultato.

Questo è solo l'inizio di quello che è possibile fare. Oltre alle manipolazioni, infatti, possiamo anche creare sottoscrizioni per essere notificati su eventi di gestione dei dati.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Caricare un asset come parte di una release con un workflow di GitHub
Creare form tipizzati con Angular
Bloccare una pull request che arriva da branch non definiti in GitHub
Catturare la telemetria degli eventi di output cache in ASP.NET Core
Utilizzare i nuovi piani dedicati di Azure Container Apps
Eseguire attività con Azure Container Jobs
Inizializzare i container in Azure Container Apps
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Utilizzare la parola chiave nameof per referenziare i nomi dei parametri di un metodo in C#
Sfruttare i tag nell'output cache di ASP.NET Core 7
Migrare un repository git da Azure DevOps a GitHub
Generare file PDF da Blazor WebAssembly con iText
I più letti di oggi
- .NET Conference Italia 2023 - Milano e Online
- Utilizzare database e servizi con gli add-on di Container App
- Evitare la script injection nelle GitHub Actions
- Reactive form tipizzati con modellazione del FormBuilder in Angular
- Eseguire attività basate su eventi con Azure Container Jobs
- Eseguire query verso tipi non mappati in Entity Framework Core
- Utilizzare le collection expression in C#
- Registrare servizi multipli tramite chiavi in ASP.NET Core 8
- Reactive form tipizzati con FormBuilder in Angular