Quiero diferenciar entre tipos separados de errores "No encontrados". Por ejemplo, dada la siguiente petición:¿Puedo usar razones personalizadas para un código de estado HTTP para diferenciar entre errores para una API REST?
GET /author/Adams/works/HHGTTG
O bien el autor podría ser 'no encontrado' o el trabajo podría be'not encontrado' y quiero diferenciar entre los dos.
estado: 404 - autor no encontró
estado: 404 - El trabajo no encontrado
De acuerdo con la especificación de la frase la razón puede ser cambiado. http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html
6.1.1 Código de Estado y de frases
razón ... la razón frases enumerados aquí son sólo recomendaciones - Pueden ser reemplazados por sus equivalentes locales sin afectar el protocolo ...
¿También es aceptable usar dos frases únicas para el mismo código de estado?
Y, ¿este es un enfoque sensato o hay una mejor convención para indicar errores más granulares?
En última instancia, quiero tener una biblioteca de cliente que pueda arrojar una excepción AuthorNotFound o WorkNotFound en lugar de una excepción genérica AuthorOrWorkNotFound.
Esto me hizo pensar, para mi uso es legimate para traducir un 404 no encontrado en un – Ben
[comentario anterior se rompió] Esto me hizo pensar, para mi caso de uso es legítimo traducir un 404 no encontrado en un WorkNotFound incluso si la verdadera razón es porque no hay autor. Si solicito/author/adams/y obtengo un 404 que siempre se traduce a WorkNotFound, y un 404 para/author/adams/work/HHGTTG siempre traducirá el 404 a WorkNotFound. Lado del cliente Puedo determinar fácilmente si la causa de WorkNotFound es AuthorNotFound al buscar el autor directamente. Gracias por los consejos útiles. – Ben