Crie um ambiente de desenvolvimento do GitHub Codespaces com FastAPI e Postgres

Este artigo mostra como executar FastAPI e Postgres juntos em um ambiente GitHub Codespaces . Codespaces é um ambiente de desenvolvimento alojado na cloud que pode ser utilizado para criar ambientes de desenvolvimento configuráveis e repetíveis.

Podes abrir o repositório de exemplo num ambiente de desenvolvimento integrado (IDE) como Visual Studio Code com a extensão GitHub Codespaces.

Como alternativa, você pode clonar o repositório de exemplo localmente. Quando abres o projeto em Visual Studio Code, podes usar Dev Containers para o executar, usando Dev Containers. Dev Containers exige que o Docker Desktop seja instalado localmente. Se o Docker não estiver instalado, podes executar o projeto usando o GitHub Codespaces como ambiente de desenvolvimento.

Quando usas o GitHub Codespaces, tens um número fixo de horas essenciais livres por mês. Este tutorial requer menos de uma hora principal para ser concluído. Para obter mais informações, consulte Sobre o faturamento do GitHub Codespaces.

Você também pode usar essa configuração como um ponto de partida e modificar o exemplo para executar outros frameworks web Python como Django ou Flask.

Inicie o ambiente de desenvolvimento no Codespaces

Este tutorial apresenta uma das muitas maneiras possíveis de criar e trabalhar com o GitHub Codespaces.

  1. Aceda ao repositório de app de exemplo https://github.com/Azure-Samples/msdocs-fastapi-postgres-codespace.

    O repositório de exemplo tem toda a configuração necessária para criar um ambiente com um aplicativo FastAPI usando um banco de dados Postgres. Você pode criar um projeto semelhante seguindo as etapas em Configurando um projeto Python para o GitHub Codespaces.

  2. Selecione Código, guia Codespaces , e + para criar um novo codespace.

    Captura de tela mostrando como criar um espaço de código a partir do repositório GitHub.

  3. Quando o contêiner terminar de ser construído, confirme que vê Codespaces no canto inferior esquerdo do navegador e que vê o repositório de exemplo.

    Os arquivos de configuração chave do codespace são devcontainer.json, Dockerfile e docker-compose.yml. Para obter mais informações, consulte Visão geral do GitHub Codespaces.

    Sugestão

    Você também pode executar o espaço de código no Visual Studio Code. Selecione Codespaces no canto inferior esquerdo do navegador ou (Ctrl + Shift + P / Ctrl + Command + P) e digite "Codespaces". Em seguida, selecione Abrir no VS Code. Além disso, se você parar o codespace e voltar para o repositório e abri-lo novamente no GitHub Codespaces, você tem a opção de abri-lo no VS Code ou em um navegador.

    Note

    Se o PostgreSQL não arrancar (o contentor falhar), pode dever-se a uma incompatibilidade entre o PostgreSQL 18+ e o volume existente do diretório de dados. Editar .devcontainer/docker-compose.yaml e mudar postgres:latest para postgres:17, depois reconstruir o contentor. O PostgreSQL 18 alterou o layout dos diretórios de dados, tornando a montagem de volume /var/lib/postgresql/data incompatível com versões anteriores.

  4. Selecione o arquivo .env.devcontainer e crie uma cópia chamada .env com o mesmo conteúdo.

    O ficheiro .env contém variáveis de ambiente que o código utiliza para se ligar à base de dados.

  5. Se uma janela do terminal ainda não estiver aberta, abra uma abrindo a Paleta de Comandos (Ctrl + Shift + P / Ctrl + Command + P), digitando "Terminal: Criar Novo Terminal" e selecionando-a para criar um novo terminal.

  6. Selecione a guia PORTS na janela do terminal para confirmar que o PostgreSQL está sendo executado na porta 5432.

  7. Na janela do terminal, execute o aplicativo FastAPI.

    uvicorn main:app --reload
    
  8. Selecione a notificação Abrir no navegador.

    Se não vires ou tiveres perdido a notificação, vai para PORTS e encontra o Endereço Local da porta 8000. Use o URL listado lá.

  9. Adicione /docs no final da URL de pré-visualização para ver a interface do Swagger, que pode usar para testar os métodos da API.

    Os métodos API são gerados a partir da interface OpenAPI que FastAPI cria a partir do código.

    Captura de tela mostrando a interface do usuário do FastAPI Swagger.

  10. Na página Swagger, execute o método POST para adicionar um restaurante.

    1. Expanda o método POST .

    2. Selecione Experimentar.

    3. Preencha o corpo da solicitação.

      {
        "name": "Restaurant 1",
        "address": "Restaurant 1 address"
      }
      
    4. Selecione Executar para comprometer a alteração.

Conecte-se ao banco de dados e visualize os dados

  1. Volte para o GitHub Codespace para o projeto, selecione a extensão SQLTools e, em seguida, selecione Banco de dados local para se conectar.

    A extensão SQLTools é instalada quando o contentor é criado. Se a extensão SQLTools não aparecer na Barra de Atividade, fecha o espaço de código e volta a abri-lo.

  2. Expanda o nó Base de dados local até encontrar a tabela restaurants, clique com o botão direito do rato e selecione a opção Mostrar Registos da Tabela.

    Vês o restaurante que adicionaste.

    Captura de ecrã a mostrar como usar a extensão SQLTools no Visual Studio Code para se ligar à base de dados local do Postgres e mostrar registos de tabelas.

Limpeza

Para parar de usar o espaço de código, feche o navegador. (Ou feche o VS Code se o tiver aberto dessa forma.)

Se você planeja usar o espaço de código novamente, você pode mantê-lo. Apenas espaços de código em execução incorrem em encargos de CPU. Um codespace interrompido incorre apenas em custos de armazenamento.

Se quiser remover o codespace, vá para https://github.com/codespaces para gerenciar os seus codespaces.

Próximos passos