【问题标题】:Scala: Sending response code for Rest servicesScala:为 Rest 服务发送响应代码
【发布时间】:2016-11-20 02:49:27
【问题描述】:

我有一个类似于下面的控制器:

@RestController
@RequestMapping(Array("/x/hello"))
class HelloController {

    @Autowired
    private val helloService: HelloService = null

    var helloRequest: Option[HelloRequest] = _

    @RequestMapping
    def world: Option[HelloRequest] = {
              helloService.worldInstances
     }

worldInstances 在请求成功时返回一个 Option[HelloRequest] 的实例,状态码为 200。

现在,当出现问题时,worldInstances 会发送一条 Option[HelloRequest] 类型的消息。 在这种情况下,我想要一个自定义的状态代码(比如 400,它与 400-Bad Request 的 http 状态代码不同)而不是 200。(它发送的响应格式相同,无论成功与否,但只是状态代码必须不同)

在这种情况下如何显式设置状态码?

【问题讨论】:

  • 控制器是否自动将响应编码为json?
  • 请查看已编辑的问题。响应的类型为 DaasRequest

标签: scala web-services rest spring-mvc spring-boot


【解决方案1】:

在 spring-mvc 中你有 @ExceptionHandler@ControllerAdvice,你抛出异常并在 exceptionHandler 中你决定做什么:

参考你可以看看:link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    • 2012-02-13
    • 2012-01-31
    • 2012-08-10
    相关资源
    最近更新 更多