Статус HTTP_500_INTERNAL_SERVER_ERROR
Статус HTTP_500_INTERNAL_SERVER_ERROR - это константа из модуля fastapi.status, равная числу 500.
Она обозначает, что сервер столкнулся с непредвиденной ситуацией и не смог выполнить запрос.
В FastAPI этот статус можно вернуть явно через параметр status_code в декораторе маршрута,
а также через объект JSONResponse или HTTPException.
Кроме того, FastAPI автоматически отдаёт 500, если в обработчике возникло необработанное исключение.
Синтаксис
from fastapi import status
status.HTTP_500_INTERNAL_SERVER_ERROR
Пример
Давайте вернём статус 500 через параметр status_code в декораторе:
from fastapi import FastAPI, status
app = FastAPI()
@app.get('/error', status_code=status.HTTP_500_INTERNAL_SERVER_ERROR)
def error():
return {'detail': 'internal server error'}
Результат выполнения кода для адреса /error:
{"detail": "internal server error"}
Пример
Давайте выбросим исключение с этим статусом через HTTPException:
from fastapi import FastAPI, HTTPException, status
app = FastAPI()
@app.get('/items/{item_id}')
def get_item(item_id: int):
if item_id == 0:
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
detail='item id cannot be zero'
)
return {'item_id': item_id}
Результат выполнения кода для адреса /items/0:
{"detail": "item id cannot be zero"}
Пример
Давайте вернём статус 500 через объект JSONResponse:
from fastapi import FastAPI, status
from fastapi.responses import JSONResponse
app = FastAPI()
@app.get('/fail')
def fail():
return JSONResponse(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
content={'message': 'something went wrong'}
)
Результат выполнения кода для адреса /fail:
{"message": "something went wrong"}
Смотрите также
-
статус
HTTP_400_BAD_REQUEST,
который обозначает некорректный запрос клиента -
статус
HTTP_404_NOT_FOUND,
который обозначает, что ресурс не найден -
статус
HTTP_422_UNPROCESSABLE_ENTITY,
который обозначает ошибку валидации данных -
модуль
status,
который содержит все HTTP-статусы FastAPI