Introdução à FastAPI

O que é FastAPI?

FastAPI é um framework web moderno e rápido (alta performance) para construção de APIs com Python 3.7+ baseado em dicas de tipo padrão do Python.

As principais características que destacam o FastAPI de outros frameworks incluem:

  • Alta Performance: FastAPI é um dos frameworks Python mais rápidos disponíveis, comparável ao NodeJS e Go.
  • Rápido para Codificar: Aumenta a produtividade do desenvolvedor ao reduzir a duplicação de código.
  • Intuitivo: Ótimo suporte ao editor com autocompletar em todos os lugares e menos tempo depurando.
  • Fácil: Projetado para ser fácil de usar e aprender, reduzindo o tempo para desenvolver funcionalidades.
  • Conciso: Minimiza a duplicação de código com várias funcionalidades a partir de cada declaração de parâmetro.
  • Robusto: Gera código pronto para produção com documentação interativa automática.
  • Baseado em Padrões: Baseado em (e totalmente compatível com) os padrões abertos para APIs: OpenAPI e JSON Schema.

FastAPI vs Outros Frameworks

Quando comparado a outros frameworks web populares do Python, o FastAPI oferece várias vantagens:

Framework Performance Verificação de Tipos Documentação Validação
FastAPI Muito Alta Sim Automática Automática
Flask Média Não Manual Manual
Django REST Média Não Manual Serializadores

Configuração do Ambiente

Antes de começar a construir aplicações com FastAPI, você precisa configurar seu ambiente de desenvolvimento. Aqui está um guia:

1. Instalar FastAPI e Uvicorn

Instale o FastAPI e o Uvicorn (servidor ASGI) usando o pip:

pip3 install fastapi uvicorn

2. Verificar a Instalação

Crie uma aplicação FastAPI simples para verificar sua instalação:

# Crie um arquivo chamado main.py
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

Deploy da aplicação:

# Execute a aplicação com algum dos métodos a seguir:
uvicorn main:app --reload
fastapi run main.py

Abra seu navegador e navegue até http://localhost:8000. Você deve ver uma resposta JSON: {"Hello": "World"}.

Sua Primeira Aplicação FastAPI

Vamos criar uma aplicação FastAPI simples para entender os conceitos básicos:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: float
    is_offer: bool = None

@app.get("/")
def read_root():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

@app.post("/items/")
def create_item(item: Item):
    return item

Esta aplicação simples demonstra várias características principais do FastAPI:

  • Operações de Caminho: Definidas usando decorators como @app.get e @app.post.
  • Parâmetros de Caminho: Definidos no caminho como {item_id} e convertidos para tipos Python.
  • Parâmetros de Consulta: Definidos como parâmetros de função com valores padrão.
  • Corpo da Requisição: Definido usando modelos Pydantic para validação automática.
  • Documentação Automática: O FastAPI gera automaticamente documentação interativa da API.

Para executar esta aplicação, salve-a como main.py e execute:

uvicorn main:app --reload

Você pode acessar a documentação interativa da API em http://localhost:8000/docs.

Seu Progresso

Faça login para salvar seu progresso.

Progresso do Capítulo