Descubra como o GitHub Copilot revoluciona o desenvolvimento de APIs Python com FastAPI, desde a geração de código inteligente até a implantação automatizada no Azure, incluindo testes unitários e integração contínua.
No episódio final do GitHub Copilot Bootcamp Brasil (assista as gravações),Henrique Eduardo Souza, Microsoft MVP e Especialista em arquitetura e IA, apresenta um workshop prático de criação de APIs até a implantação em produção, testes automatizados e integração com pipelines de CI/CD.
Demonstração Prática: Criando uma API com Python
Durante a sessão, Henrique demonstra como criar uma API básica usando Python e FastAPI com o auxílio do Copilot. Ele começa configurando um ambiente local e segue os passos abaixo:
- Configuração Inicial:
- Criação de um arquivo app.py com um prompt simples: "Preciso criar uma API em Python que responda 'Oi'".
- O Copilot sugere automaticamente o código necessário para implementar essa funcionalidade.
- Gerenciamento de Dependências:
- Utilizando extensões do Copilot, ele gera automaticamente um arquivo requirements.txt contendo as dependências necessárias.
- As dependências são instaladas rapidamente via terminal.
- Testes Locais:
- Após configurar a API, Henrique utiliza ferramentas como uvicorn para rodar localmente e validar as funcionalidades.
- Automatização com Workspaces:
- O Copilot também permite criar estruturas completas de projetos (como MVC) automaticamente, otimizando ainda mais o processo.
Implantação no Azure com GitHub Actions
Após construir a API localmente, Henrique demonstra como configurá-la para implantação no Azure utilizando pipelines do GitHub Actions:
- Configuração do Workflow:
- Criação da pasta .github/workflows no repositório.
- Geração automática de um pipeline YAML pelo Copilot para build e deploy da aplicação.
- Configuração do Azure Web App:
- Criação de um recurso no Azure Web App com suporte à versão Python 3.12.
- Download do perfil de publicação (publish profile) e configuração como segredo no repositório do GitHub.
- Deploy Automatizado:
- Ao realizar commits no repositório, o pipeline é acionado automaticamente, construindo e implantando a aplicação no Azure.
Henrique também destaca que o pipeline pode ser customizado para incluir etapas adicionais, como validação de segurança ou execução de testes automatizados.
Testes Automatizados com Cobertura Completa
Um dos pontos altos da sessão é a demonstração sobre como escrever testes automatizados utilizando o Copilot:
- Geração Automática de Testes:
- Henrique utiliza a funcionalidade "Copilot Generate Tests" para criar testes unitários diretamente na IDE.
- Ele valida os testes localmente usando bibliotecas como pytest.
- Cobertura de Testes:
- Adiciona etapas no pipeline para medir a cobertura dos testes utilizando ferramentas como coverage.py.
- Relatórios HTML são gerados automaticamente para análise detalhada.
- Execução na Pipeline:
- Os testes são integrados ao pipeline YAML, garantindo que qualquer alteração no código seja validada antes da implantação.
Extensões e Personalizações
Henrique explora extensões adicionais que podem ser integradas ao GitHub Copilot:
- Diagramas Automáticos:
- Utilizando ferramentas como Mermaid.js, ele gera diagramas de sequência diretamente da base de código.
- Extensões Customizadas:
- Demonstra como criar extensões próprias para validar código conforme padrões corporativos (como integração com Jira).
Essas funcionalidades ampliam ainda mais as possibilidades do Copilot, tornando-o uma ferramenta altamente adaptável às necessidades específicas dos desenvolvedores.
Conclusão
Seja você iniciante ou experiente, explorar as funcionalidades do Copilot pode transformar sua maneira de desenvolver software. Experimente integrá-lo ao seu dia a dia e descubra por que tantos desenvolvedores consideram essa ferramenta indispensável!
Assista as gravações do GitHub Copilot Bootcamp disponíveis em português, comece a utilizar o GitHub Copilot gratuito hoje mesmo!
Published Feb 24, 2025
Version 1.0cynthiazanoni
Microsoft
Joined November 06, 2019
Desenvolvedores BR
Follow this blog board to get notified when there's new activity