假设我有一个控制器,它具有各种端点(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)