使用HandlerInterceptor修改RestController响应输出

时间:2016-12-13 23:52:33

标签: spring spring-boot

我有一个Spring Boot REST服务,其中端点都返回以下格式的JSON消息:

{
  status: {
    code: XXXX
  },
  data : {
    something: YYYY
  }
}

我希望在我的代码中有一个共同点来添加"描述"与"代码相关联#34;以上:

{
  status: {
    code: XXXX,
    description: "Hello"
  },
  data : {
    something: YYYY
  }
}

我想使用HandlerInterceptor在postHandle阶段基本上执行以下操作:

  1. 获取响应JSON消息
  2. 使用JsonNode获取代码,通过调用远程服务查找相应的描述值,以及
  3. 通过将描述值插入JsonNode并返回JsonNode的结果字符串值来修改响应
  4. 了解如何在postHandle方法中从ModelandView对象获取JSON响应被证明是一个挑战。我的控制器类都只是用@RestController注释,我没有Model或View类。我遇到的示例代码主要是添加一些日志记录功能,而modelandView.addObject()方法似乎没有做我想要的。

    我可以获得一个关于如何实现我需要的指针,这会在出路时破坏响应吗?

    我想避免使用Servlet过滤器,因为我需要访问Spring上下文来执行我需要的查找,据我所知,Filter类是在Spring上下文的范围之外调用的。

0 个答案:

没有答案