假设我有一个控制器,它具有各种端点(GET / POST / PUT / DELETE),并且通常它们都产生和使用JSON,所以我这样做:

@RestController
@RequestMapping(value=["/some/base/path"], produces = [MediaType.APPLICATION_JSON_UTF8_VALUE], consumes = [MediaType.APPLICATION_JSON_UTF8_VALUE])
public class SomeController {
    ...
}


但是事实证明,我的@GetMapping不使用JSON(并且我不想强制调用方为Content-Type: application/json请求设置GET。在@GetMapping上有一种方法可以清除/清空在类级别设置的consumes =值还是有另一种方法可以避免在类中的所有方法上重复consumes属性?

我已经尝试设置@GetMapping(value=["/some/path"], consumes = [])时没有任何运气。对于上下文,我正在从Jersey注释转换为Spring REST控制器样式注释,并且发现这是行为上的烦人差异(设置类级别的@Consumes注释不会针对@GET强制执行) 。而且,只是寻找一种优雅的方式来反映现有行为,而不用在整个地方克隆消费属性。

最佳答案

我现在遇到了您的问题。请尝试使用以下解决方案,并参考此链接可能会有所帮助

https://github.com/spring-projects/spring-framework/pull/1257/commits/00e6ca412dffeb8a7a596f9312db19eb6cc49525

    @GetMapping(value = "/get", consumes = MediaType.ALL_VALUE)

10-08 13:20