Neste repositório, estou realizando um estudo detalhado sobre o desenvolvimento de aplicações com FastAPI, uma das ferramentas mais modernas e poderosas para construção de APIs. O objetivo é explorar os principais conceitos e práticas envolvidas no uso do FastAPI, incluindo configuração do ambiente, testes, modelagem de dados, autenticação, deploy e muito mais.
Este repositório aborda os seguintes tópicos:
Vamos começar do absoluto zero, configurando o ambiente de desenvolvimento necessário para trabalhar com FastAPI. Isso inclui a instalação de dependências e a configuração básica para iniciar o desenvolvimento.
Após a configuração do ambiente, vamos explorar a estrutura básica de um projeto FastAPI. Também faremos uma introdução detalhada ao Test Driven Development (TDD), onde aprenderemos a escrever testes e a garantir que nossa aplicação seja robusta desde o início.
Vamos aprender a modelar e manipular dados utilizando Pydantic e SQLAlchemy, duas ferramentas que tornam o FastAPI ainda mais eficiente. Pydantic é utilizado para validação de dados, enquanto SQLAlchemy facilita o trabalho com banco de dados relacional.
Neste módulo, construiremos um sistema de autenticação completo para proteger as rotas da nossa API. Apenas usuários autenticados poderão acessar certos dados, garantindo a segurança da aplicação.
Aprenderemos a testar nossa aplicação FastAPI com pytest e coverage, além de integrar esses testes em um pipeline de CI/CD com GitHub Actions para garantir a qualidade do código em cada atualização.
Por fim, vamos dockerizar nossa aplicação FastAPI e realizar o deploy usando a plataforma Fly.io, tornando nossa aplicação pronta para ser executada em produção.
-
Clone este repositório:
git clone https://github.com/seu-usuario/nome-do-repositorio.git
-
Crie um ambiente virtual:
python3 -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
-
Instale as dependências:
pip install -r requirements.txt
-
Inicie o servidor FastAPI:
uvicorn app.main:app --reload
Se você gostaria de contribuir com este estudo, fique à vontade para abrir issues ou fazer pull requests. Sua contribuição será muito bem-vinda!
Este repositório é licenciado sob a MIT License - veja o arquivo LICENSE para mais detalhes.
Baseado no curso de FASTAPI de Eduardo Mendes (dunossauro)
https://fastapidozero.dunossauro.com/