0

我正在使用 Spring 框架在 Java 上开发 RESTful 服务。如果我的服务层发生异常,我会抛出一个绑定到 Http 状态代码的异常。例如,当用户身份验证失败时,我会发送带有 401 状态码的响应。

return new ResponseEntity<>(HttpStatus.valueOf(statusCode));

我想向 RESTful 服务消费者解释他的请求不仅发送代码而且发送文本解释有什么问题。我可以通过将自定义消息添加到响应正文或替换默认响应短语来做到这一点。例如用或替换Unauthorizedfor 。401User does not existIncorrect password

问题HttpStatus来自org.springframework.http枚举,错误代码绑定到文本响应短语。

我可以以某种方式覆盖那些响应短语还是我需要另一种方法?

替换默认响应短语是一种好习惯,还是将解释消息放在响应正文中会更好?

4

1 回答 1

0

这应该有效:

首先,您可以将请求方法绑定到它生成的类型,方法是添加 produces = {MediaType.TEXT_PLAIN}到您的@RequestMappingwhere MediaType is from importjavax.ws.rs.core.MediaType这将产生纯文本响应。

然后您可以返回以下内容: return new ResponseEntity<>(message, HttpStatus.UNAUTHORIZED);其中 message 是您要显示的文本消息。

于 2016-03-30T12:25:53.573 回答