Say the client is requesting the following URL:
/user-details?user=123
If /user-details
was a non-existing resource, the corre
Try 422 which is used in WebDav? See http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
For me 404 status is ok too (better normed actually), 400 is too vague.
The 404 is fine because the user-details resource is a conceptual mapping to the user entity in this case to a partial user resource information.
The GET method for user-details is therefore not responsible for differentiating from the two cases: a) The user doesn't exist, b) The user details don't exist.
I would however rewrite the endpoint to something like this:
/user/123/details
Which in my opinion is more expressive.
The user
parameter is part of the resource identifier as stated in RFC 3986, section 3.4:
The query component contains non-hierarchical data that, along with data in the path component (Section 3.3), serves to identify a resource within the scope of the URI's scheme and naming authority
Hence, 404/Not found
is perfectly fine.