Pular para o conteúdo
murad.guide

Aplicações Web

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

FastAPI e docs

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"}