【发布时间】:2019-01-29 01:27:34
【问题描述】:
我正在使用带有功能端点的 Spring Boot 2.0.4 WebFlux。
我想在 GET /books 和 GET /books/{id} 中返回不同的模型。前者为简要模型,后者为完整模型。
我可以使用 @JsonIgnore 从 JSON 序列化中过滤出属性,但这会从使用此模型的所有响应中删除任何特定字段。
Jackson 提供了 @JsonView 作为解决方案,但该解决方案仅与带注释的控制器兼容,我正在使用这样的功能端点:
@Configuration
public class BookRouter {
@Bean
public RouterFunction<ServerResponse> routeBooks(BookHandler bookHandler) {
return RouterFunctions
.route(RequestPredicates.GET("/books")
.and(RequestPredicates.accept(MediaType.APPLICATION_JSON)), bookHandler::getBooks)
.andRoute(RequestPredicates.GET("/books/{id}")
.and(RequestPredicates.accept(MediaType.APPLICATION_JSON)), bookHandler::getBook);
}
}
所以基本上我在问是否有任何已知的方式可以将@JsonView 与功能端点一起使用,或者是否有任何其他方式可以实现我想做的事情。
【问题讨论】:
标签: json spring hibernate jackson spring-webflux