Error Handling
This document describes how REST APIs should present errors to clients consuming their services.
When an error occurs in a API, the service should return the error to the calling client in an informative and structured manner. The API should return information about the error in the response body.
Response Body
When an error occurs, a REST API should respond with an 4xx or 5xx HTTP status code and the response should contain a Problem Details object as described in the IETF RFC7807 documentation.
Problem Details Object
For REST APIs the Problem Details object is modelled as a JSON object. The format is identified with the application/problem+json
content type in the HTTP Content-Type
header.
The type
string is the primary problem identifier and is, as such, required. Every other field is optional but it is HIGHLY RECOMMENDED to at least have title
and status
strings present in the error response.
type
(string) A URI reference that identifies the problem type. This specification encourages that, when dereferenced, it provides human-readable documentation for the problem type.title
(string) (Optional) A short human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence.status
(number) (Optional) The HTTP Status Code generated by the origin server for this occurrence of the problem.detail
(string) (Optional) A human-readable explanation of the problem. This MAY differ from occurrence to occurrence.instance
(string) (Optional) A URI reference that identifies the specific occurrence of the problem.extensions
(Optional) Any Problem Detail object can contain custom extensions specific to the REST API.traceId
(string) A very common custom extension used to further clarify the context in which the error occurred.params
(Array) A common custom extension used to indicate which parameters were being used when the error occurred.
REST Error Response Examples
Simple Response
Response With Extensions
Last updated