In proper usage of REST, what is suitable the HTTP status code when request is successful but has warning messages?
In our case; clients are web applications running on browsers. We prefer status codes as following:
- HTTP 200, 201, 204 when request processed successfully
- HTTP 422 when request violates some business rules
- HTTP 500 when unexpected exceptions are occured while processing request
But we couldn't determine which status code should be used when request processed successfully but some information or warning messages need to send to client?
In the HTTP protocol there actually is a "warning" header (see Header Field Definitions ). These are HTTP warnings, but you could use code 199 to send what you need:
The problem here is the next bit of specification:
Because of this, I think you're better off adding data about the warning in the response content (and keep using the 200 status code).