【发布时间】:2019-10-16 13:37:51
【问题描述】:
我想使用 Spring boot 生成 YAML 格式类型的响应。你能帮我把它弄出来吗?
【问题讨论】:
标签: spring-boot yaml
我想使用 Spring boot 生成 YAML 格式类型的响应。你能帮我把它弄出来吗?
【问题讨论】:
标签: spring-boot yaml
确保您对类路径具有以下依赖性:
<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"));
}
}
将其公开为 Spring @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() {
...
}
【讨论】: