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:
- 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
- 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)
- 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
Com isso temos uma pequeno exemplo de como é feita uma API em FastAPI.
Com essa tecnologia podemos criar muitas coisas.
:)
Top comments (0)