Operações PUT e DELETE

Introdução ao FastAPI

Matt Eckerle

Software and Data Engineering Leader

PUT vs. DELETE

Operações PUT

  • Uso tradicional: atualizar um objeto existente

  • Parâmetros via query string e corpo da requisição

  • Requer um aplicativo ou framework

    • ex.: cURL, requests
api = "http://moviereviews.co/reviews/1"
body = {"text": "A fantastic movie!"}
response = requests.put(api, json=body)

Operações DELETE

  • Uso tradicional: excluir um objeto existente

  • Parâmetros via query string e corpo da requisição

  • Requer um aplicativo ou framework

    • ex.: cURL, requests
api = "http://moviereviews.co/reviews/1"
response = requests.delete(api)
Introdução ao FastAPI

Referenciando objetos existentes

  • Sem ORM, o app deve mapear objeto para ID
  • ID do banco: identificador único
  • Convenção _id para IDs de banco
    • review_id: Tabela reviews, coluna id
    • Mesma convenção em frameworks com ORM
from pydantic import BaseModel

class DbReview(BaseModel):
    movie: str
    num_stars: int
    text: str
    # Referência ao ID no banco de Reviews
    review_id: int
Introdução ao FastAPI

Tratando uma operação PUT

Endpoint PUT para atualizar uma resenha de filme existente:

  • Endpoint: /reviews
  • Entrada: DbReview (do slide anterior)
  • Saída: DbReview
@app.put("/reviews", response_model=DbReview)
def update_review(review: DbReview):
    # Atualiza a resenha no banco de dados
    db_review = crud.update_review(review)
    # Retorna a resenha atualizada
    return db_review
Introdução ao FastAPI

Tratando uma operação DELETE

Endpoint DELETE para remover uma resenha de filme existente:

  • Endpoint: /reviews
  • Entrada: DbReview
  • Saída: {}
@app.delete("/reviews")
def delete_review(review: DbReview):
    # Exclui a resenha do banco de dados
    crud.delete_review(review)
    # Não retorna nada, pois os dados foram removidos
    return {}
Introdução ao FastAPI

Vamos praticar!

Introdução ao FastAPI

Preparing Video For Download...