Spring 5使用多个MediaType

时间:2017-11-30 23:10:44

标签: java spring rest

我使用Spring boot 1.5.8.RELEASE 我有一个端点,想要使用多个MediaType。 特别是application/x-www-form-urlencodedapplication/json类型。 目前我有以下代码。它适用于application/x-www-form-urlencoded,但不适用于application/json

@RequestMapping(path = "/abc", method = RequestMethod.POST,
                    consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_FORM_URLENCODED_VALUE},
                    produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseStatus(value = HttpStatus.OK)
    public ResponseEntity<MyResponse> validate(@Valid @ModelAttribute MyDetails details) {
        return something();
    }

我尝试在我的配置中添加内容协商器,但仍然无法正常工作。

    @Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
            configurer.favorPathExtension(false)
                      .defaultContentType(MediaType.APPLICATION_JSON)
                      .mediaType("x-www-form-urlencoded", MediaType.APPLICATION_FORM_URLENCODED);
        }

如何允许端点接受这两种媒体类型?

0 个答案:

没有答案