DEV Community

Endriw Villa
Endriw Villa

Posted on

Criando um CRUD simples com FastAPI

Depois de muito tempo resolvi me aventurar criando uma API com FastAPI.

Bom, para criar um CRUD (sigla para Create, Read, Update e Delete, que são as operações básicas de um sistema de gerenciamento de banco de dados) com o FastAPI, você precisará seguir os seguintes passos:

  1. Instale o FastAPI e as dependências necessárias utilizando o seguinte comando:
pip install fastapi pip install uvicorn pip install sqlalchemy pip install databases 
Enter fullscreen mode Exit fullscreen mode
  1. Crie um arquivo main.py e adicione o seguinte código:
from fastapi import FastAPI from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from databases import Database # cria uma conexão com o banco de dados engine = create_engine('sqlite:///banco_de_dados.db') # define o objeto base Base = declarative_base() # define a classe que representa a tabela class Tabela(Base): __tablename__ = 'tabela' id = Column(Integer, primary_key=True) nome = Column(String) idade = Column(Integer) # inicializa o FastAPI app = FastAPI() # cria a tabela no banco de dados Base.metadata.create_all(engine) # cria uma sessão com o banco de dados Session = sessionmaker(bind=engine) # cria uma instância do banco de dados db = Database(engine) 
Enter fullscreen mode Exit fullscreen mode
  1. Adicione os endpoints para as operações CRUD da seguinte maneira:
# endpoint para criar um novo registro @app.post('/tabela') async def criar_registro(nome: str, idade: int, session: Session = Depends(get_db)): registro = Tabela(nome=nome, idade=idade) session.add(registro) session.commit() # endpoint para ler os registros da tabela @app.get('/tabela') async def ler_registros(session: Session = Depends(get_db)): resultado = session.query(Tabela).all() return resultado # endpoint para atualizar um registro @app.put('/tabela/{id}') async def atualizar_registro(id: int, nome: str, idade: int, session: Session = Depends(get_db)): registro = session.query(Tabela).get(id) registro.nome = nome registro.idade 
Enter fullscreen mode Exit fullscreen mode

Com isso temos uma pequeno exemplo de como é feita uma API em FastAPI.

Com essa tecnologia podemos criar muitas coisas.

:)

Top comments (0)