Como desenvolver APIs em Python utilizando o FastAPI

Criar APIs em Python usando FastAPI é uma escolha excelente, especialmente para aplicações que necessitam de alto desempenho e desenvolvimento rápido. FastAPI é um framework moderno e rápido para construir APIs com Python 3.6+ baseado em padrões Python type hints.
Aqui está um guia básico para começar a criar APIs com FastAPI:
1. Instalação do FastAPI e Uvicorn
Primeiro, você precisa instalar o FastAPI e o Uvicorn, um servidor ASGI leve que serve para executar sua aplicação FastAPI.
pip install fastapi[all]
O [all] inclui o Uvicorn, que é recomendado para rodar sua aplicação.
2. Criando a Primeira Aplicação
Crie um arquivo, por exemplo main.py, e adicione o seguinte código:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
Este código cria uma instância do FastAPI e define uma rota básica. Quando alguém acessa a URL raiz (/), a função read_root é chamada, retornando um JSON.
3. Executando a Aplicação
Para executar a aplicação, use o Uvicorn:
uvicorn main:app --reload
O --reload faz com que o servidor reinicie automaticamente após mudanças no código.
Após iniciar o servidor, você pode acessar a API em http://127.0.0.1:8000.
4. Adicionando Mais Rotas
FastAPI facilita a adição de novas rotas. Por exemplo, para adicionar uma rota GET que recebe um parâmetro:
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}
Aqui, item_id é um parâmetro da rota que será convertido para um inteiro e passado para a função.
5. Utilizando Query Parameters
Você pode facilmente capturar query parameters:
@app.get("/items/")
def read_item(q: str = None):
return {"q": q}
Se você acessar http://127.0.0.1:8000/items/?q=somequery, a função retornará {"q": "somequery"}.
6. Criando Modelos com Pydantic
FastAPI utiliza Pydantic para a validação de dados. Você pode definir modelos de dados que automaticamente validam as entradas:
from pydantic import BaseModel
class Item(BaseModel):
name: str
"descricao": str = None
price: float
tax: float = None
@app.post("/items/")
def create_item(item: Item):
return item
Neste exemplo, o modelo Item é usado para validar os dados enviados para a rota POST /items/.
7. Documentação Automática
Uma das grandes vantagens do FastAPI é a documentação automática das suas APIs. Ao executar sua aplicação, você terá acesso a uma interface de documentação interativa (Swagger UI) em http://127.0.0.1:8000/docs e outra alternativa (ReDoc) em http://127.0.0.1:8000/redoc.
Conclusão
FastAPI é uma ferramenta poderosa para o desenvolvimento rápido e fácil de APIs com Python. Graças à sua simplicidade, performance e recursos automáticos de documentação, é uma escolha excelente para criar APIs modernas e eficientes.







