Obsługa błędów

Wprowadzenie do FastAPI

Matt Eckerle

Software and Data Leader

Dwa główne powody obsługi błędów

Błąd użytkownika

  • Nieprawidłowy lub nieaktualny URI
  • Brakujące lub niepoprawne dane wejściowe
@app.delete("/items")
def delete_item(item: Item):
    if item.id not in item_ids:
        # Return an error
    else:
        crud.delete_item(item)
        return {}

Błąd serwera

  • Wystąpił inny problem
@app.delete("/items")
def delete_item(item: Item):
    try:
        crud.delete_item(item)
    except Exception:
        # Return an error
    return {}
Wprowadzenie do FastAPI

Kody statusu HTTP: „poziomy krzyku"

  • Umożliwia API przekazanie statusu w odpowiedzi
    • Sukces, niepowodzenie, błąd itp.
  • Kody zdefiniowane w protokole HTTP
  • Zakres: 100 - 599
  • Kategorie według pierwszej cyfry (1 -5)
  1. Odpowiedzi informacyjne (100 - 199)
  2. Odpowiedzi o sukcesie (200 - 299)
  3. Komunikaty przekierowania (300 - 399)
  4. Błędy klienta (400 - 499)
  5. Błędy serwera (500 - 599)
1 https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
Wprowadzenie do FastAPI

Typowe kody statusu HTTP

Sukces (200 - 299)

  • 200 OK
    • Domyślna odpowiedź o sukcesie
  • 201 Created
    • Charakterystyczne dla operacji POST
  • 202 Accepted
    • Bez zobowiązań. „Pracuję nad tym"
  • 204 No Content
    • Sukces! Brak dodatkowych danych

Inne odpowiedzi

  • 301 Moved Permantently
    • URI zmieniony na stałe
  • 400 Bad Request
    • Błąd klienta
  • 404 Not Found
    • Serwer nie może znaleźć zasobu
  • 500 Internal Server Error
    • Serwer napotkał nieobsługiwaną sytuację
Wprowadzenie do FastAPI

Obsługa błędów za pomocą kodów statusu

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

Czas na ćwiczenia!

Wprowadzenie do FastAPI

Preparing Video For Download...