Как указать тип носителя по умолчанию для конечных точек в Spring Boot ServiceJAVA

Программисты JAVA общаются здесь
Anonymous
Как указать тип носителя по умолчанию для конечных точек в Spring Boot Service

Сообщение Anonymous »

Я строю Spring Boot Service с несколькими конечными точками. Моя служба должна поддержать как json , так и xml вывод. Большинство конечных точек будут только json , а некоторые будут только XML . Я могу указать тип контента. Определенная конечная точка принимает или возвращается с аннотацией @Requestmapping . Например: < /p>

Код: Выделить всё

@RequestMapping(method = RequestMethod.POST,
consumes = {MediaType.APPLICATION_XML_VALUE},
produces = {MediaType.APPLICATION_XML_VALUE})
< /code>

Однако, поскольку большинство конечных точек моего приложения будут только json < /code>, я хотел избежать необходимости писать < /p>

consumes = {MediaType.APPLICATION_JSON_VALUE},
produces = {MediaType.APPLICATION_JSON_VALUE}
< /code>

во всех из них. Есть ли способ сделать метод, аннотированный с помощью @Requestmapping 
иметь по умолчанию потребитель и производит тип носителя? Всякий раз, когда мне нужно что -то отличное от по умолчанию, я могу указать его. Я думаю, что я смогу сделать это посредством переговоров по контенту с пользовательским контентом thengotiationStrategy , но мне понадобится этот код, чтобы иметь возможность читать аннотации обработчика для этого запроса (конкретный метод, аннотированный с помощью @Requestmapping , а код получает только код. это?

Код: Выделить всё

@Configuration
@EnableWebMvc
class ContentNegotiationConfiguration extends WebMvcConfigurerAdapter {
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorParameter(false)
.favorPathExtension(true)
.ignoreAcceptHeader(true)
.ignoreUnknownPathExtensions(false)
.useJaf(false)
.defaultContentType(MediaType.APPLICATION_JSON);
}
}
< /code>

и конечная точка с < /p>

@RequestMapping(method = RequestMethod.GET)
< /code>

Затем вызов конечной точки < /p>

GET https://localhost:8080/endpoint.xml
Возвращает Xml output и http 200 вместо http 406 .

Подробнее здесь: https://stackoverflow.com/questions/528 ... ot-service

Вернуться в «JAVA»