Error Handling
Original Django Rest Framework has been modified a bit for consistency and extended to include error codes.
Expected http status codes are 404 and 400. 400 response details have been detailed below.
General / Non Field Errors
A response for a single error would look like this:
{
"non_field_errors": [
"Error message"
],
"error_codes": [
"invalid"
]
}
Multiple errors can be provided under non_field_errors
key, eg.:
{
"non_field_errors": [
"Error message",
"Another error"
],
"error_codes": [
"invalid",
"invalid"
]
}
Field Errors
Errors related to fields will be returned as a mapping
{
"email": [
"This field is required."
],
"error_codes": {
"email": [
"required"
]
}
}
And of course can contain multiple messages per single field
{
"field1": [
"Err1",
"Err2"
],
"field2": [
"Err3"
],
"error_codes": {
"field1": [
"invalid",
"invalid"
],
"field2": [
"invalid"
]
}
}
Any exceptions to these rules should be treated as bugs and reported.
Last updated