Condividi tramite


Creare un ambiente di sviluppo GitHub Codespaces con FastAPI e Postgres

Questo articolo illustra come eseguire FastAPI e Postgres insieme in un ambiente GitHub Codespaces . Codespaces è un ambiente di sviluppo ospitato nel cloud che consente di creare ambienti di sviluppo configurabili e ripetibili.

È possibile aprire il repository di esempio in un browser o in un ambiente di sviluppo integrato (IDE) come Visual Studio Code con l'estensione GitHub Codespaces.

In alternativa, è possibile clonare il repository di esempio in locale. Quando si apre il progetto in Visual Studio Code, è possibile usare i contenitori di sviluppo per eseguirlo usando i contenitori di sviluppo. Per i contenitori di sviluppo è necessario installare Docker Desktop in locale. Se Docker non è installato, è possibile eseguire il progetto usando GitHub Codespaces come ambiente di sviluppo.

Quando si usa GitHub Codespaces, tenere presente che è disponibile un numero fisso di ore di base gratuite al mese. Per completare questa esercitazione sono necessarie meno di un'ora core. Per altre informazioni, vedere Informazioni sulla fatturazione per GitHub Codespaces.

È anche possibile usare questa configurazione come punto di partenza e modificare l'esempio per eseguire altri framework Web Python, ad esempio Django o Flask.

Avviare l'ambiente di sviluppo in Codespaces

Questa esercitazione presenta uno dei molti modi possibili per creare e usare GitHub Codespaces.

  1. Vai al repository dell'applicazione di esempio https://github.com/Azure-Samples/msdocs-fastapi-postgres-codespace.

    Il repository di esempio include tutte le configurazioni necessarie per creare un ambiente con un'app FastAPI usando un database Postgres. È possibile creare un progetto simile seguendo i passaggi descritti in Configurazione di un progetto Python per GitHub Codespaces.

  2. Selezionare Codice, scheda Spazi di codice e + per creare un nuovo spazio di codice.

    Screenshot che mostra come creare uno spazio di codice dal repository GitHub.

  3. Al termine della compilazione del contenitore, verificare che Codespaces venga visualizzato nell'angolo inferiore sinistro del browser e visualizzare il repository di esempio.

    I file di configurazione della chiave codespace sono devcontainer.json, Dockerfile e docker-compose.yml. Per altre informazioni, vedere Panoramica di GitHub Codespaces.

    Suggerimento

    È anche possibile eseguire lo spazio di codice in Visual Studio Code. Selezionare Codespaces nell'angolo inferiore sinistro del browser o (Ctrl + Shift + P / Ctrl + Command + P) e digitare "Codespaces". Selezionare quindi Apri in VS Code. Inoltre, se si arresta lo spazio di codice e si torna al repository e lo si apre nuovamente in GitHub Codespaces, è possibile aprirlo in VS Code o in un browser.

  4. Selezionare il file .env.devcontainer e creare una copia denominata .env con lo stesso contenuto.

    .env contiene variabili di ambiente usate nel codice per connettersi al database.

  5. Se una finestra del terminale non è già aperta, aprirla aprendo il riquadro comandi (Ctrl + Shift + P / Ctrl + Command + P), digitando "Terminale: Crea nuovo terminale" e selezionandolo per creare un nuovo terminale.

  6. Selezionare la scheda PORTE nella finestra del terminale per verificare che PostgreSQL sia in esecuzione sulla porta 5432.

  7. Nella finestra del terminale eseguire l'app FastAPI.

    uvicorn main:app --reload
    
  8. Selezionare la notifica Apri nel browser.

    Se non vedi la notifica o l'hai persa, vai a PORTE e trova l'indirizzo locale per la porta 8000. Usa l'URL indicato.

  9. Aggiungere /docs alla fine dell'URL di anteprima per visualizzare l'interfaccia utente di Swagger, che consente di testare i metodi API.

    I metodi API vengono generati dall'interfaccia OpenAPI creata da FastAPI dal codice.

    Screenshot che mostra l'interfaccia utente di FastAPI Swagger.

  10. Nella pagina Swagger eseguire il metodo POST per aggiungere un ristorante.

    1. Espandere il metodo POST .

    2. Selezionare Prova.

    3. Compilare il corpo della richiesta.

      {
        "name": "Restaurant 1",
        "address": "Restaurant 1 address"
      }
      
    4. Selezionare Esegui per eseguire il commit della modifica

Connettersi al database e visualizzare i dati

  1. Tornare a GitHub Codespace per il progetto, selezionare l'estensione SQLTools e quindi selezionare Database locale per connettersi.

    L'estensione SQLTools deve essere installata quando viene creato il contenitore. Se l'estensione SQLTools non viene visualizzata nella barra delle attività, chiudere lo spazio di codice e riaprirlo.

  2. Espandi il nodo Database locale fino a trovare la tabella ristoranti, fai clic con il tasto destro su Mostra record tabella.

    Vedrai il ristorante che hai aggiunto.

    Screenshot che mostra come usare l'estensione SQLTools in Visual Studio Code per connettersi al database locale Postgres e visualizzare i record di tabella.

Pulizia

Per interrompere l'uso dello spazio di codice, chiudere il browser. In alternativa, chiudere VS Code se è stato aperto in questo modo.

Se si prevede di usare di nuovo lo spazio di codice, è possibile mantenerlo. Solo gli spazi di codice in esecuzione comportano addebiti per la CPU. Un codespace arrestato comporta solo costi di archiviazione.

Per rimuovere lo spazio di codice, passare a https://github.com/codespaces per gestire gli spazi di codice.

Passaggi successivi