Убедитесь, что у вас есть следующая зависимость от пути к классу:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>${jackson.version}</version>
</dependency>
Затем определите свой собственный HttpMessageConverter
:
class MappingJackson2YamlHttpMessageConverter extends AbstractJackson2HttpMessageConverter {
MappingJackson2YamlHttpMessageConverter(ObjectMapper objectMapper) {
super(objectMapper, MediaType.parseMediaType("application/x-yaml"));
}
}
Представьте его как пружину @Bean
:
@Configuration
public class JacksonYamlConfig {
@Bean
public MappingJackson2YamlHttpMessageConverter yamlHttpMessageConverter() {
YAMLMapper mapper = new YAMLMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
return new MappingJackson2YamlHttpMessageConverter(mapper);
}
}
И, наконец, настройте метод контроллера для получения YAML:
@GetMapping(produces = "application/x-yaml")
public ResponseEntity<Foo> getFoo() {
...
}