2012-07-10 12 views
5

Tengo una capa de servicio REST genérica escrita en módulos Java que pueden ser conectados. Si alguna de las operaciones deseadas no es compatible con un Módulo (GET/POST/PUT/DELETE de un Recurso), el módulo arroja java.lang.UnsupportedOperationException o un tipo de excepción equivalente que tengo.HTTP 501 para java.lang.UnsupportedOperationException

Entonces, ¿puedo devolver un código de error HTTP 501 al cliente en este caso?

Respuesta

6

En este caso se debe utilizar 405Método no permitido (todas las cotizaciones from Wikipedia):

Se realizó una solicitud de un recurso utilizando un método de petición no es compatible por ese recurso; por ejemplo, usar GET en un formulario que requiere que los datos se presenten a través de POST o que utilicen PUT en un recurso de solo lectura.

501 es razonable:

El servidor ya sea no reconoce el método de petición, o carece de la capacidad para cumplir con la solicitud.

pero lo mantendría para las operaciones que planea implementar en el futuro cercano.

+0

Gracias Tomas. Solo para aclarar, si un cliente está intentando crear un recurso/resto/nombre_módulo/Persona y create() no es compatible con el módulo identificado por "nombre_módulo", se trata como un problema de solicitud del cliente y arroja un 405 en lugar de un problema del lado del servidor al devolver 501? La razón por la que pregunto es que 4XX son códigos de error relacionados con el cliente, mientras que 5XX están relacionados con el servidor. –

+0

@BlueDiamond: bueno, ¿es usted (proveedor de API) haciendo algo incorrecto (5xx) o el cliente está utilizando la API incorrectamente (4xx)? –

+0

Lo entiendo. :) Gracias. –

Cuestiones relacionadas