Gestionarea erorilor

Introducere în FastAPI

Matt Eckerle

Software and Data Leader

Două motive principale pentru gestionarea erorilor

Eroare de utilizator

  • URI invalid sau expirat
  • Date de intrare lipsă sau incorecte
@app.delete("/items")
def delete_item(item: Item):
    if item.id not in item_ids:
        # Return an error
    else:
        crud.delete_item(item)
        return {}

Eroare de server

  • A apărut altceva
@app.delete("/items")
def delete_item(item: Item):
    try:
        crud.delete_item(item)
    except Exception:
        # Return an error
    return {}
Introducere în FastAPI

Coduri de stare HTTP: „Niveluri de severitate"

  • Permite API-ului să indice starea în răspuns
    • Succes, eșec, eroare etc.
  • Coduri specifice definite în protocolul HTTP
  • Interval: 100 - 599
  • Categorizate după primul număr (1 -5)
  1. Răspunsuri informaționale (100 - 199)
  2. Răspunsuri de succes (200 - 299)
  3. Mesaje de redirecționare (300 - 399)
  4. Erori de client (400 - 499)
  5. Erori de server (500 - 599)
1 https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
Introducere în FastAPI

Coduri de stare HTTP comune

Succes (200 - 299)

  • 200 OK
    • Răspuns implicit de succes
  • 201 Created
    • Specific operației POST
  • 202 Accepted
    • Neangajant. „Se procesează"
  • 204 No Content
    • Succes! Nimic de adăugat

Alte răspunsuri

  • 301 Moved Permantently
    • URI schimbat permanent
  • 400 Bad Request
    • Eroare de client
  • 404 Not Found
    • Resursa solicitată nu a fost găsită
  • 500 Internal Server Error
    • Serverul a întâlnit o situație pe care nu știe să o gestioneze
Introducere în FastAPI

Gestionarea erorilor cu coduri de stare

from fastapi import FastAPI, HTTPException

app = FastAPI()

@app.delete("/items")
def delete_item(item: Item):
    if item.id not in item_ids:
        # Send response with status 404 and specific error message
        raise HTTPException(status_code=404, detail="Item not found.")
    else:
        delete_item_in_database(item)
        return {}
Introducere în FastAPI

Să exersăm!

Introducere în FastAPI

Preparing Video For Download...