Статус HTTP_404_NOT_FOUND
Статус HTTP_404_NOT_FOUND применяется для указания того,
что сервер не смог найти ресурс по запрошенному URL.
Он входит в модуль fastapi.status и представляет собой
целочисленную константу со значением 404.
Этот статус можно передавать в параметр status_code
декораторов маршрутов, а также использовать вместе
с классом HTTPException для возврата клиенту
сообщения об ошибке.
Синтаксис
from fastapi import status
status.HTTP_404_NOT_FOUND
Пример
Давайте вернём статус HTTP_404_NOT_FOUND напрямую
через параметр status_code декоратора маршрута:
from fastapi import FastAPI, status
app = FastAPI()
@app.get('/missing', status_code=status.HTTP_404_NOT_FOUND)
def missing():
return {'detail': 'resource not found'}
Результат выполнения кода для адреса /missing:
{"detail": "resource not found"}
Пример
Давайте выбросим исключение HTTPException со статусом
HTTP_404_NOT_FOUND, если пользователь не найден:
Результат выполнения кода для адреса /user/abcde:
{"name": "abcde", "value": "Alice"}
Результат выполнения кода для адреса /user/unknown:
{"detail": "user not found"}
Пример
Давайте вернём статус HTTP_404_NOT_FOUND через
объект Response, когда ресурс отсутствует:
from fastapi import FastAPI, Response, status
app = FastAPI()
@app.get('/article/{slug}')
def get_article(slug: str, response: Response):
if slug != 'article':
response.status_code = status.HTTP_404_NOT_FOUND
return {'detail': 'article not found'}
return {'slug': slug}
Результат выполнения кода для адреса /article/article:
{"slug": "article"}
Результат выполнения кода для адреса /article/unknown:
{"detail": "article not found"}
Смотрите также
-
статус
HTTP_400_BAD_REQUEST,
который сигнализирует о некорректном запросе клиента -
статус
HTTP_403_FORBIDDEN,
который указывает на отсутствие доступа к ресурсу -
статус
HTTP_401_UNAUTHORIZED,
который требует аутентификации клиента -
статус
HTTP_500_INTERNAL_SERVER_ERROR,
который сообщает о внутренней ошибке сервера