gpt4 book ai didi

json - Spring WebFlux 功能端点 + @JsonView 怎么样?

转载 作者:行者123 更新时间:2023-12-01 04:39:56 26 4
gpt4 key购买 nike

我正在使用带有功能端点的 Spring Boot 2.0.4 WebFlux。

我想在 GET/books 和 GET/books/{id} 中返回不同的模型。前者是简短模型,后者是完整模型。

我可以使用 @JsonIgnore 从 JSON 序列化中过滤掉属性,但这会从使用此模型的所有响应中删除任何特定字段。

Jackson 提供了@JsonView 作为解决方案,但该解决方案仅与带注释的 Controller 兼容,我正在使用这样的功能端点:

@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 View ,如下所示:

public class BookHandler {

public Mono<ServerResponse> getBook(ServerRequest request) {
return ServerResponse
.ok()
.hint(Jackson2CodecSupport.JSON_VIEW_HINT, MyJacksonView.class)
.body(...);
}
}

关于json - Spring WebFlux 功能端点 + @JsonView 怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51972715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com