Operações CRUD são essenciais em qualquer aplicação web que envolve armazenamento e recuperação de dados. Essas operações permitem que os usuários criem novos registros, recuperem registros existentes, atualizem registros existentes e excluam registros de um banco de dados.
FastAPI torna fácil implementar operações CRUD, fornecendo uma maneira simples e intuitiva de definir pontos finais de API e lidar com solicitações HTTP. Ele aproveita as dicas de tipo do Python para gerar automaticamente documentação interativa da API e realizar validação de dados, tornando-se uma ferramenta poderosa para construir APIs robustas e bem documentadas.

Neste post, exploraremos como implementar rapidamente operações CRUD com FastAPI. Começaremos configurando o FastAPI e o banco de dados, depois procederemos para criar os pontos finais da API para as operações CRUD. Também cobriremos a implementação das operações de criar, ler, atualizar e excluir, bem como testar e validar essas operações. Então, vamos começar e mergulhar no mundo do FastAPI e das operações CRUD!
O que é CRUD no FastAPI?
No FastAPI, CRUD refere-se às operações básicas que podem ser realizadas em dados em um banco de dados ou sistema de armazenamento de dados. CRUD significa Criar, Ler, Atualizar e Excluir, e representa as funcionalidades fundamentais que são essenciais para gerenciar dados na maioria das aplicações.

Aqui está uma explicação detalhada das operações CRUD no FastAPI:
- Criar (C): Esta operação envolve adicionar novos dados ao banco de dados. No FastAPI, você pode criar dados enviando uma solicitação POST para o ponto final apropriado. Por exemplo, para adicionar um novo usuário ao sistema, você enviaria uma solicitação POST para o ponto final de criação de usuário com os detalhes relevantes do usuário no corpo da solicitação.
- Ler (R): A operação Ler se refere a recuperar dados existentes do banco de dados. No FastAPI, você pode realizar operações de leitura usando solicitações GET. Por exemplo, se você quiser recuperar todos os usuários ou os detalhes de um usuário específico, você enviaria uma solicitação GET para o respectivo ponto final.
- Atualizar (U): Esta operação permite que você modifique dados existentes no banco de dados. No FastAPI, você pode atualizar dados usando solicitações PUT ou PATCH. A solicitação PUT é usada para atualizar o recurso inteiro, enquanto a PATCH é usada para modificar campos específicos do recurso. Por exemplo, para atualizar as informações de um usuário, você enviaria uma solicitação PUT ou PATCH para o ponto final do usuário com os detalhes atualizados.
- Excluir (D): A operação Excluir envolve remover dados do banco de dados. No FastAPI, você pode excluir dados usando solicitações DELETE. Por exemplo, para excluir um usuário do sistema, você enviaria uma solicitação DELETE para o ponto final do usuário com o identificador ou chave única do usuário.
Como Criar Operações CRUD com o FastAPI Rapidamente
Para implementar a funcionalidade CRUD com o FastAPI, siga estas etapas:
Passo 1: Instale o FastAPI: Certifique-se de que o Python está instalado em seu sistema e execute o seguinte comando no terminal para instalar o FastAPI:
pip install fastapi
Passo 2: Crie uma Aplicação FastAPI: Crie um novo arquivo Python (por exemplo, main.py) e importe os módulos e bibliotecas necessários:
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List
app = FastAPI()
Passo 3: Defina Modelos de Dados: Use Pydantic para definir modelos de dados. Por exemplo:
class Item(BaseModel):
id: int
name: str
price: float
Passo 4: Crie Rotas e Manipuladores CRUD: Use o FastAPI para criar rotas e funções de manipulação correspondentes para operações CRUD. Aqui está um exemplo:
items = []
@app.get("/items", response_model=List[Item])
async def read_items():
return items
@app.post("/items", response_model=Item)
async def create_item(item: Item):
items.append(item)
return item
@app.put("/items/{item_id}", response_model=Item)
async def update_item(item_id: int, item: Item):
items[item_id] = item
return item
@app.delete("/items/{item_id}")
async def delete_item(item_id: int):
del items[item_id]
return {"message": "Item excluído"}
Passo 5: Execute a Aplicação: Para executar a aplicação FastAPI e testar a funcionalidade do APIRouter, use um servidor ASGI como o uvicorn. Certifique-se de que o uvicorn está instalado:
pip install uvicorn
Em seu editor IDE, abra o terminal, navegue até o diretório onde o arquivo main.py está armazenado e execute o seguinte comando para iniciar a aplicação:
uvicorn main:app --reload
Isso iniciará a aplicação FastAPI na porta padrão (geralmente 8000) com recarregamento automático habilitado, para que a aplicação seja recarregada automaticamente quando você fizer alterações no código.
Passo 6: Teste a Operação CRUD
Use uma ferramenta de cliente HTTP (por exemplo, cURL ou Apidog) para enviar solicitações e testar as funcionalidades de Criar, Ler, Atualizar e Excluir. Aqui estão alguns exemplos de solicitações:
- Criar um novo item: Envie uma solicitação POST com o corpo da solicitação para criar um novo item.
POST http://localhost:8000/items
{
"id": 1,
"name": "Maçã",
"price": 0.5
}

- Obter todos os itens: Envie uma solicitação GET para recuperar todos os itens.
GET http://localhost:8000/items

- Atualizar um item: Envie uma solicitação PUT com o corpo da solicitação para atualizar um item.
GET http://localhost:8000/items

- Excluir um item: Envie uma solicitação DELETE para excluir um item.
DELETE http://localhost:8000/items/1

Por fim, podemos escrever testes para a operação de excluir no Apidog. Podemos simular uma solicitação DELETE para o ponto final de exclusão e verificar se o código de status da resposta é 200 (indicando uma exclusão bem-sucedida). Podemos então tentar recuperar os dados excluídos do banco de dados e garantir que não existam.
Ao escrever esses testes, podemos garantir que nossas operações CRUD estão funcionando corretamente e lidam com diferentes cenários, como entrada inválida ou dados inexistentes.
Dicas Bônus
Use o suporte da IDE, como o Visual Studio Code, para melhorar a eficiência do desenvolvimento com autocompletar código, verificação de erros e recursos de depuração.
- Ao usar o FastAPI, aproveite o suporte da IDE, como o Visual Studio Code, para melhorar a eficiência do desenvolvimento com autocompletar código, verificação de erros e recursos de depuração.
- Organize seu código separando rotas e funções de manipulação em diferentes módulos, promovendo manutenibilidade e escalabilidade. Utilize o suporte assíncrono do FastAPI para operações assíncronas para melhorar o desempenho e as capacidades de concorrência.
- Garanta a segurança da API com mecanismos adequados de autenticação e autorização. Use modelos Pydantic para validação e serialização de dados para manter a consistência dos dados e lidar com erros de forma eficaz. Implemente CORS para compartilhamento de recursos entre origens quando necessário.
- Crie testes abrangentes de unidade e integração para garantir a confiabilidade e funcionalidade da API. Lide com erros de forma elegante com o tratamento de exceções do FastAPI e respostas de erro personalizadas. Monitore o desempenho com logs e profilers e mantenha o FastAPI e suas dependências atualizados para correção de bugs e novos recursos.
Seguindo essas práticas, você pode desenvolver APIs robustas e eficientes com o FastAPI, otimizando seu processo de desenvolvimento e implantação.