Estoy usando MongoDB para mi aplicación Express y sé que cuando una ID no es válida para la base de datos correspondiente, el código de estado de respuesta es 400 (Solicitud incorrecta). Pero, ¿qué sucede si la identificación es una identificación válida pero no hay ningún documento con esa identificación (por ejemplo, el documento podría eliminarse)? Supongo que el código de estado debería ser 404, pero no estoy seguro, ¿cuáles son sus opiniones?
¿Cuál debería ser el código de estado de respuesta en una API REST cuando la ID dada es una ID válida pero no hay un documento coincidente?
El código de estado 404 (No encontrado) indica que el servidor de origen no encontró una representación actual para el recurso de destino o no está dispuesto a revelar que existe.
Si necesita comunicar por qué está devolviendo un 404, eso se hace en el cuerpo de la respuesta :
el servidor DEBERÍA enviar una representación que contenga una explicación de la situación de error y si se trata de una condición temporal o permanente.
¿Por qué no 204?
Principalmente porque eso no es para lo que es 204:
La respuesta 204 permite que un servidor indique que la acción se ha aplicado con éxito al recurso de destino, al tiempo que implica que el agente de usuario no necesita salir de su "vista de documento" actual (si corresponde).
Para una solicitud GET, la forma adecuada de indicar que la representación actual tiene una longitud de 0 bytes es una respuesta de 200 con un campo de longitud de contenido .
Dicho esto, el servidor de origen tiene la libertad de decidir por sí mismo si la ausencia de un documento con la identificación correcta significa que no hay una representación actual o si la representación actual está vacía. En otras palabras, la existencia de "documentos" en el servidor de origen es un detalle de implementación que se oculta detrás de la fachada web.