Problem Detail
Last updated
Last updated
The (Problem Detail) MUST be used to communicate details about an error.
Problem Detail is intended for use with the HTTP status codes 4xx and 5xx. Problem Detail MUST NOT be used with 2xx status code responses.
At the minimum, any Problem Detail response MUST have the title
and detail
fields. title
value SHOULD NOT change from occurrence to occurence of the problem, except for purposes of localization (e.g., using proactive content negotiation)
NOTE:
title
anddetail
fields SHOULD NOT be parsed to determine the nature of the error. Insteadtype
MUST be used.
It SHOULD have the type
field with the identifier of the error, besides it MAY have the instance
field with the URI of the resource in question. If the Problem Detail response has the status
field it MUST have the same value as HTTP Status code from of the response.
NOTE: The
type
field is an identifier, and as such it MAY be used to denote additional error codes. Keep in mind that the identifier should be a URI.
When necessary, a Problem Detail response MAY include additional error details about the problems that have occurred.
These additional errors MUST be under the errors
collection and MUST follow the Problem Detail structure.
Request:
Response:
A request is made to retrieve a resource representation:
However, in order to make this request, the client needs to be authorized. Since the request is made without the authorization credentials the 401 Unauthorized response is returned together with details using the application/problem+json
media type:
Problem details are not a debugging tool for the underlying implementation; rather, they are a way to expose greater detail about the HTTP interface itself.
A Problem Detail response MUST NOT contain a program stack trace or server log for debugging purposes. Instead, provide a logref
field with reference to the particular server log.
An API description MAY list all the error codes with which the API responds. The error responses SHOULD describre the error object model schema. It is RECOMMENDED to include examples of a possible error response. The error description and/or error example MAY list all the types of errors returned for a given error code.
If needed, the Problem Detail MAY include additional fields, refer to for details.
–
There are a whole plethora of libraries working with Problem Detail, for example, see (Java).