I have a resources with uri /api/books/122
, if this resource doesn't exist at the point where a client sends HTTP Delete for this resource, what is the appropriate response code from this action? Is it 404 Not Found?
Thanks
A successful response of DELETE requests SHOULD be an HTTP response code 200 (OK) if the response includes an entity describing the status. The status should be 202 (Accepted) if the action has been queued.
If you DELETE something that doesn't exist, you should just return a 204 (even if the resource never existed). The client wanted the resource gone and it is gone. Returning a 404 is exposing internal processing that is unimportant to the client and will result in an unnecessary error condition.
The HTTP 201 Created success status response code indicates that the request has succeeded and has led to the creation of a resource.
The response code for a delete call can be any of the following :
DELETE /api/book/122
- The server successfully processed the request, but is not returning any content 204 No Content
DELETE /api/book/122
- Resource does not exist 404 Not Found
DELETE /api/book/122
- Resource already deleted 410 Gone
DELETE /api/book/122
- Users does not have permission
403 Forbidden
DELETE /api/book/122
- Method Not Allowed
405 Method Not Allowed
DELETE /api/book/122
- Conflict (User can resolve the conflict and delete)
409 Conflict
In your case 404 is apt.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With