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.
![](https://www.cloudnativeitalia.com/script/images/254.jpg)
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.
![](https://www.cloudnativeitalia.com/script/images/254_2.jpg)
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.
![](https://www.cloudnativeitalia.com/script/images/254_3.jpg)
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
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Miglioramenti nell'accessibilità con Angular CDK
Recuperare App Service cancellati su Azure
Eseguire operazioni sui blob con Azure Storage Actions
Effettuare il refresh dei dati di una QuickGrid di Blazor
Sfruttare al massimo i topic space di Event Grid MQTT
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Miglioramenti nelle performance di Angular 16
Simulare Azure Cosmos DB in locale con Docker
Creare gruppi di client per Event Grid MQTT