Capítulo 23
FastAPI: primeira API
2 min de leitura 414 palavras 1 gravura
Neste capítulo você vai expor um endpoint Hello do Ateliê com FastAPI e Uvicorn. O projeto-fio é o Ateliê Boa Viagem, ateliê digital fictício em Boa Viagem, Recife.
Antes desta etapa
Python 3 e pip. Conforto com o módulo Django ajuda, mas não é obrigatório.
Seu ponto de partida
Use o exemplo 23-fastapi-primeira do pacote anexo e copie inicio/ para uma pasta de prática fora do original. A raiz do exemplo é a referência completa desta etapa.
Use servidor só em 127.0.0.1 quando o README do exemplo pedir HTTP local. Abrir ou testar não publica nada.
Como praticar
Leia → copie ou digite → mude uma coisa → preveja → salve → recarregue → confira. Restaure cada experiência antes da próxima. Faça as atividades antes de abrir as respostas comentadas.
Rota GET rápida
FastAPI usa funções async ou sync com type hints. Uvicorn sobe o servidor em 127.0.0.1.
Faça na sua cópia
Confira o trecho no contexto do exemplo antes de mudar.
from fastapi import FastAPI
app = FastAPI(title='Ateliê Boa Viagem')
@app.get('/saude')
def saude():
return {'ok': True}
Mude uma coisa e preveja
Acrescente /sobre com o nome do Ateliê.
Anote o que espera observar antes de salvar e recarregar.
Recarregue e confira
JSON responde.
Se não acontecer
uvicorn main:app —host 127.0.0.1 —port 8800

Docs automáticas
Abra /docs para experimentar. É ferramenta de estudo; não exponha em rede.
Faça na sua cópia
Confira o trecho no contexto do exemplo antes de mudar.
http://127.0.0.1:8800/docs
Mude uma coisa e preveja
Execute GET /saude pela docs.
Anote o que espera observar antes de salvar e recarregar.
Recarregue e confira
Resposta 200.
Se não acontecer
Servidor precisa estar no ar.
Dependências em requirements
Trave versões no exemplo. Instale no venv local.
Faça na sua cópia
Confira o trecho no contexto do exemplo antes de mudar.
fastapi
uvicorn
Mude uma coisa e preveja
Recrie o venv se necessário conforme README.
Anote o que espera observar antes de salvar e recarregar.
Recarregue e confira
import fastapi funciona.
Se não acontecer
python -m venv .venv
Atividades
Atividade 1
Qual comando sobe o servidor deste volume?
Atividade 2
O que /docs oferece?
Atividade 3
Pode usar —host 0.0.0.0?
Respostas comentadas
Resposta da atividade 1
uvicorn com —host 127.0.0.1
Resposta da atividade 2
Documentação interativa OpenAPI.
Resposta da atividade 3
Não neste volume.
O arquivo completo
Referência do exemplo 23-fastapi-primeira, reproduzida aqui para que você possa conferir sem sair da página.
main.py
from fastapi import FastAPI
app = FastAPI(title="Ateliê Boa Viagem")
@app.get("/saude")
def saude():
return {"ok": True}
@app.get("/sobre")
def sobre():
return {"nome": "Ateliê Boa Viagem"}