Esercizio - Creare un'app Funzioni di Azure ed effettuare il refactoring del codice
In questo esercizio si crea invece un'applicazione Funzioni di Azure serverless che esegue le API anziché l'applicazione Express. Eseguire quindi la migrazione della logica dell'applicazione dall'applicazione Node.js Express all'applicazione Funzioni. Non è necessario riscrivere il codice. Per eseguire la transizione sono necessarie solo alcune piccole modifiche al codice.
Creare un'app di Funzioni di Azure
Assicurarsi di avere installato l'estensione di Visual Studio Code per Funzioni di Azure.
In Visual Studio Code aprire il riquadro comandi premendo F1
Digitare e selezionare Funzioni di Azure: Crea nuovo progetto.
Seleziona la radice del repository come percorso per il nuovo progetto.
Quando richiesto, immettere i valori seguenti.
Nome valore Lingua TypeScript Selezionare un modello di programmazione TypeScript Modello V4 Modello Trigger HTTP Nome getVacations
Viene ora creata l'app Funzioni per gestire gli endpoint API dell'applicazione. Nell'unità successiva vengono create le funzioni che elencano, aggiungono, aggiornano ed eliminano le vacanze.
Nota
L'app Funzioni è stata creata nella cartella functions per distinguerla dall'app Angular. È possibile decidere come strutturare le applicazioni, ma per obiettivi di apprendimento consente di visualizzare entrambe le app in un'unica posizione.
Copia ed esegui il refactoring del codice del gestore di route
Tutta la logica di Node.js Express che restituisce i dati è contenuta nella cartella server/services. È possibile copiare questo codice dall'applicazione Node.js Express all'applicazione Funzioni e quindi effettuare un piccolo refactoring per rendere il codice funzionante con l'applicazione Funzioni anziché Node.js Express.
La tabella seguente elenca le differenze principali tra l'applicazione Node.js Express e l'applicazione Funzioni:
Componente | Express Node.js | Funzioni |
---|---|---|
Pacchetto npm importato per gestire l'applicazione | express |
@azure/functions |
Oggetti richiesta e risposta | req e res |
request e context |
Prima di tutto si effettua il refactoring del codice per importare il pacchetto npm appropriato. Si esegue quindi il refactoring per gestire le differenze tra il modo in cui Express e Funzioni passano gli oggetti richiesta e risposta.
Copia il codice esistente dal progetto Express
In Visual Studio Code copia le sottocartelle dalla cartella server nell'applicazione Express e incollala nella cartella funzioni/:
- data
- modelli
- services
Non è necessario copiare la cartella route perché si creeranno nuove funzioni per ogni route nell'app Funzioni di Azure.
Passare all'unità successiva per creare le funzioni ed effettuare il refactoring degli endpoint e delle route.