Skip to main content

Status

Status is an enum of HTTP status codes, named after the standard reason phrases.

Usage

Return a Status directly from a handler for an error response with an empty JSON body:

from oxapy import Status, get


@get("/error")
def error(request):
return Status.INTERNAL_SERVER_ERROR

Use it as the status argument of Response or in a (body, Status) tuple:

from oxapy import Response, Status

Response("Not found", status=Status.NOT_FOUND)
return ("Created", Status.CREATED)

Code and comparisons

status.code() returns the numeric code:

Status.NOT_FOUND.code() # 404

Status values support comparison operators, including ranges:

status = response.status

if status == Status.OK:
print("success")

if status >= Status.OK and status < Status.MULTIPLE_CHOICES:
print("2xx success")

Common members

MemberCode
CONTINUE100
OK200
CREATED201
ACCEPTED202
NO_CONTENT204
PARTIAL_CONTENT206
MULTIPLE_CHOICES300
MOVED_PERMANENTLY301
FOUND302
NOT_MODIFIED304
TEMPORARY_REDIRECT307
PERMANENT_REDIRECT308
BAD_REQUEST400
UNAUTHORIZED401
PAYMENT_REQUIRED402
FORBIDDEN403
NOT_FOUND404
METHOD_NOT_ALLOWED405
NOT_ACCEPTABLE406
REQUEST_TIMEOUT408
CONFLICT409
GONE410
PAYLOAD_TOO_LARGE413
URI_TOO_LONG414
UNSUPPORTED_MEDIA_TYPE415
RANGE_NOT_SATISFIABLE416
EXPECTATION_FAILED417
IM_A_TEAPOT418
UNPROCESSABLE_ENTITY422
LOCKED423
TOO_MANY_REQUESTS429
INTERNAL_SERVER_ERROR500
NOT_IMPLEMENTED501
BAD_GATEWAY502
SERVICE_UNAVAILABLE503
GATEWAY_TIMEOUT504
HTTP_VERSION_NOT_SUPPORTED505

The enum also includes the less common codes: SWITCHING_PROTOCOLS (101), PROCESSING (102), RESET_CONTENT (205), MULTI_STATUS (207), ALREADY_REPORTED (208), IM_USED (226), USE_PROXY (305), PROXY_AUTHENTICATION_REQUIRED (407), LENGTH_REQUIRED (411), PRECONDITION_FAILED (412), MISDIRECTED_REQUEST (421), FAILED_DEPENDENCY (424), UPGRADE_REQUIRED (426), PRECONDITION_REQUIRED (428), REQUEST_HEADER_FIELDS_TOO_LARGE (431), UNAVAILABLE_FOR_LEGAL_REASONS (451), VARIANT_ALSO_NEGOTIATES (506), INSUFFICIENT_STORAGE (507), LOOP_DETECTED (508), NOT_EXTENDED (510), and NETWORK_AUTHENTICATION_REQUIRED (511).