Criando um CRUD simples com FastAPI

Endriw Villa - Dec 14 '22 - - Dev Community

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.

:)

. . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player