Il servizio API Management di Azure permette di esporre e di centralizzare sotto un unico cappello servizi ospitati sulla piattaforma e fornendo un layer comune che si occupi di inserire regole di autenticazione, autorizzazione o di throttling. Permette inoltre di ottenere una documentazione e un portale per la gestione degli applicativi e degli utenti che utilizzano le nostre API.
Si tratta quindi di un reverse proxy avanzato e scalabile che gira le richieste HTTP a servizi di backend. Non si limita però, solo a chiamate HTTP/HTTPS ma esso è in grado anche di esporre WebSocket, cioè i canali bidirezionali che permettono la creazione di comunicazioni realtime, godendo allo stesso tempo delle policy che abbiamo definito.
Per sfruttare questa funzionalità è sufficiente selezionare l'API di tipo WebSocket quando definiamo una nuova API. Ci vengono chiesti i soliti dati, come il nome, la descrizione e i metadati relativi al prodotto o i tag, ma oltre a questi anche l'indirizzo del canale WebSocket di backend.

Sono supportati canali in chiaro (WS) o criptati (WSS) e l'eventuale suffisso da apporre al dominio base. Creata l'API ci ritroviamo con un'unica operazione GET di nome onHandshake che rappresenta la prima fase nella quale il canale viene stabilito. In questa fase possiamo mettere le policy, ma non possiamo intervenire sui messaggi che vengono scambiati. Nell'apposita sezione Test possiamo poi provare l'API stessa, procedendo prima all'avvio della connessione e poi all'invio di eventuali messaggi.

Sebbene questa funzionalità sia molto utile bisogna sottolineare che sono presenti dei limiti, tra i quali l'impossibilità di usare questa funzionalità nel tier a consumo e il numero massimo di 200 connessioni per unità. Vi sono poi delle policy che non possiamo utilizzare, alcune delle quali per ovvi motivi, come la risposta di mock, l'utilizzo della cache o l'intervento nella richiesta o nella risposta.
Per maggiori informazioni rimandiamo all'indirizzo https://learn.microsoft.com/en-us/azure/api-management/websocket-api
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ricevere avvisi su metriche dei server Azure Arc
Ottimizzare il codice JavaScript utilizzando WeakMap e WeakSet
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
Installare le Web App site extension tramite una pipeline di Azure DevOps
Utilizzare ChatGPT con Azure OpenAI
Migliorare la scalabilità di ASP.NET Core 7 grazie all'output cache
Specificare il numero di parentesi graffe nella string interpolation in combinazione con i string literal in C#
Utilizzo di Set e Array in JavaScript
Sfruttare la local cache del browser tramite gli ETag in ASP.NET Core
3 metodi JavaScript che ogni applicazione web dovrebbe contenere - Parte 2
Pubblicare la documentazione di un repository con GitHub Pages
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
- Utilizzare le collection expression in C#
- Registrare servizi multipli tramite chiavi in ASP.NET Core 8
- Eseguire query verso tipi non mappati in Entity Framework Core
- Reactive form tipizzati con FormBuilder in Angular
- Eseguire attività pianificate con Azure Container Jobs