¿Cuál es el código de respuesta HTTP apropiado para una solicitud DELETE exitosa?

Si está siguiendo REST, recuerde que ser “idempotente” no se traduce en un método que no tenga efectos secundarios; solo significa que emitir la misma solicitud varias veces no producirá efectos secundarios adicionales . En este caso, el primer DELETE puede ser 200 (algunas personas devuelven el objeto eliminado para una verificación de cordura de la entidad) o 204 como sugiere Justin Cormack. Sin embargo, lo más importante es lo que devuelve si la solicitud se envió nuevamente. Algunas personas devuelven 2xx de nuevo, y eso está mal. Su primera solicitud creó un efecto secundario legítimo; no devuelva otra respuesta de categoría de éxito o su usuario podría pensar que la llamada que acaba de realizar eliminó. En cambio, devuelva algo como 410 Gone para sugerir que lo que solía estar allí, ya no existe. O 404 funciona igual de bien, si te sientes flojo, ya que lo que estás buscando eliminar ya no está allí. La idempotencia no se trata de devolver siempre el mismo resultado cada vez (te estoy mirando en Twitter); lo que protege es cuando enviaste el mismo DELETE HTTP al mismo punto final y elimina un recurso diferente cada vez que lo llamas.

200 OK , si el recurso se elimina con éxito y hay algo que decirle al cliente.

202 Aceptado , si la solicitud se acepta pero aún no se ha eliminado. Esta respuesta debe incluir algunas indicaciones. Consulte Protocolo de transferencia de hipertexto – HTTP / 1.1 para más detalles.

204 Sin contenido , si el recurso se elimina con éxito y no hay nada que decirle al cliente.

RFC 2616 dice:

Una respuesta exitosa DEBE ser 200 (OK) si la respuesta incluye un
entidad que describe el estado, 202 (Aceptado) si la acción no ha
aún se ha promulgado, o 204 (Sin contenido) si la acción se ha promulgado
pero la respuesta no incluye una entidad.

Consulte Protocolo de transferencia de hipertexto – HTTP / 1.1 para más detalles.

Al igual que en el caso de otras solicitudes HTTP, ya sea GET, POST, whathaveyou, la respuesta “OK” es 200. Entonces, si DELETE se completó con éxito, la respuesta HTTP debería ser 200.