Zpracování chyb

Úvod do FastAPI

Matt Eckerle

Software and Data Leader

Dva hlavní důvody pro zpracování chyb

Chyba uživatele

  • Neplatné nebo zastaralé URI
  • Chybějící nebo nesprávný vstup
@app.delete("/items")
def delete_item(item: Item):
    if item.id not in item_ids:
        # Return an error
    else:
        crud.delete_item(item)
        return {}

Chyba serveru

  • Nastalo něco jiného
@app.delete("/items")
def delete_item(item: Item):
    try:
        crud.delete_item(item)
    except Exception:
        # Return an error
    return {}
Úvod do FastAPI

HTTP stavové kódy: „Úrovně křiku“

  • Umožní API vracet stav v odpovědi
    • Úspěch, neúspěch, chyba apod.
  • Konkrétní kódy dle protokolu HTTP
  • Rozsah: 100599
  • Kategorizace podle první číslice (15)
  1. Informační odpovědi (100199)
  2. Úspěšné odpovědi (200299)
  3. Přesměrování (300399)
  4. Chyby klienta (400499)
  5. Chyby serveru (500599)
1 https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
Úvod do FastAPI

Běžné HTTP stavové kódy

Úspěch (200299)

  • 200 OK
    • Výchozí úspěšná odpověď
  • 201 Created
    • Specifické pro POST
  • 202 Accepted
    • Nezávazné. „Pracujeme na tom“
  • 204 No Content
    • Úspěch, bez obsahu

Další odpovědi

  • 301 Moved Permanently
    • URI trvale změněno
  • 400 Bad Request
    • Chyba klienta
  • 404 Not Found
    • Server nenašel požadovaný zdroj
  • 500 Internal Server Error
    • Server narazil na situaci, kterou neumí zpracovat
Úvod do FastAPI

Zpracování chyb pomocí stavových kódů

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 {}
Úvod do FastAPI

Ayo berlatih!

Úvod do FastAPI

Preparing Video For Download...