The Status-Line element of an HTTP response message is used by REST APIs to advise clients of the overall result of their request.
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
To provide the finest user experience for your customers, developers must create good error messages that may assist their clients in determining what they want to do with the information they receive. The developers can get out of the failed call with the help of a decent error message. As a result, we should make every effort to handle or catch internal failures and respond with other acceptable status codes wherever possible to limit these types of answers to the client.
Some people assume that returning status codes other than 200 is bad because the client has already reached your REST API and received a response. The proper usage of status codes will aid in the management of REST APIs and REST API workflows.
Here are some of the common error response codes:
- 400 Bad Request – client sent an invalid request, such as lacking required request body or parameter
- 401 Unauthorized – client failed to authenticate with the server
- 403 Forbidden – client authenticated, but does not have permission to access the requested resource
- 404 Not Found – the requested resource does not exist
- 412 Precondition Failed – one or more conditions in the request header fields evaluated to false
- 500 Internal Server Error – a generic error occurred on the server
- 503 Service Unavailable – the requested service is not available
500 errors indicate that the server encountered some problems or encountered an exception while processing a request. In most cases, our client is unaffected by this internal problem.
A common HTTP status code, message for the developer, message for the end-user (where applicable), internal error code (equivalent to some specific internally determined ID), and links where developers may obtain more information should all be included in error responses.
We can use the body of the answer to provide more information to the client if necessary.
When providing detailed responses, we should include:
- Error – a unique identifier for the error
- Message – a brief human-readable message
- Detail – a lengthier explanation of the error