Resumo
O foco deste curso é ir de uma introdução ao FastAPI até a construção de um sistema completo utilizando várias ferramentas que da stack de desenvolvimento de Python no banckend, como docker, docker-compose, postgres, entre outros.
O objetivo é trazer exemplos do mundo real no que diz respeito ao desenvolvimento banckend com Python. Vamos trazer exemplos práticos de como utilizar FastAPI/Python para resolver problemas do dia a dia de uma empresa de tecnologia.
O curso é dividido em 7 seções, onde cada uma tem o seguinte propósito:
1. Introdução
Na introdução vamos entender o que é FastAPI e por que ele tem crescido tanto nas trends no que diz respeito a desenvolvimento backend com Python. Também nessa seção vai ser apresentada a estrutura do curso.
2. Type hint e Pydantic
Nessa seção vamos entender os conceitos de type hint e annotations em Python, bem como vai ser apresentada a lib Pydantic, essencial para o desenvolvimento com FastAPI.
3. Setup
Na seção de setup, vamos configurar todos os recursos necessários para o desenvolvimento dos projetos como Docker, docker-compose, Pyenv, Poetry, WSL e Insomnia.
4. Programação assíncrona
Nessa seção vamos entender em detalhes os conceitos de programação síncrona e assícrona bem como compara-las. Vamos aprender como utilizar a sintaxe async/await o asyncio, com run e gather. Partindo de um exemplo bem didático até a implementação prática, vamos ter no final da seção total noção de como funciona programação assíncrona em Python e o quão performático isso pode ser.
5. Projeto 1
Os dois principais objetivos do projeto 1 são:
- Dar os primeiros passos utilizando todos os principais recursos do FastAPI com parametros de query, path e body bem como documentação e criação de rotas assíncronas;
- Ver um exemplo do mundo real de como a programação assíncrona pode ser muito poderosa no dia-a-dia.
6. Projeto 2
O objetivo da seção é criar um projeto completo com FastAPI, com tudo que um projeto de backend tem direito. Utilizando Docker, docker-compose, Postgres, SQLALchemy, Migrations com Alembic e Pytest. O projeto é desenvolvido utilizando a metodologia TDD (Test Driven Development).
7. Autenticação e Segurança
Nessa etapa, vamos adicionar autenticação no nosso Projeto 2 com as features de user register, user login e verificação de token nas rotas necessárias. Para isso vamos utilizar alguns recurso do FastAPI bem como outros recurso de segurança como a bilioteca passlib e jwt.
7. Paginação
Nessa etapa, aprendemos como utilizar a lib fastapi_pagination para paginar nossas listagens em FastAPI.