【问题标题】:How to change content-type header of http response provided by method in class annotated @RepositoryRestController如何更改类注解@RepositoryRestController 中的方法提供的http响应的内容类型标头
【发布时间】:2018-04-06 15:32:14
【问题描述】:

我有课:

@RepositoryRestController
@RequestMapping(value = "users")
public class UserController  {

...other methods...

@GetMapping(value = "returnText", produces = MediaType.TEXT_PLAIN_VALUE)
    public String returnText() {
        return "my text";
    }
}

当 Postman 调用此方法时,http 响应 content-type 标头为 application/hal+json 但我使用了produces = MediaType.TEXT_PLAIN_VALUE

我可以以某种方式更改content-type 响应标头吗?

@RepositoryRestController只能返回application/hal+json吗?

我也想用@RepositoryRestController 以另一种方法返回image/jpg contet-type,但由于同样的原因,这不起作用。

我认为这将在 @RestController 类中工作,但如果我的应用程序是 Spring Data Rest 并且我想为我的控制器使用 @RepositoryRestController 注释,为什么要使用它。

【问题讨论】:

标签: spring-boot content-type spring-data-rest spring-restcontroller


【解决方案1】:

来自SDR documentation

...要利用 Spring Data REST 的设置、消息转换器、异常处理等,请使用 @RepositoryRestController 注释 ...

如果您对特定于实体的操作不感兴趣,但仍想在 basePath 下构建自定义操作,例如 Spring MVC 视图、资源等,请使用 @BasePathAwareController.

所以尝试使用@BasePathAwareController 而不是@RepositoryRestController

【讨论】:

    猜你喜欢
    • 2011-09-30
    • 1970-01-01
    • 2013-10-01
    • 2016-04-17
    • 2017-02-11
    • 2018-09-25
    • 2011-01-20
    • 2012-10-31
    • 2018-05-07
    相关资源
    最近更新 更多