gpt4 book ai didi

spring - 如何在 Postman 中查看 Spring 5 Reactive API 的响应?

转载 作者:行者123 更新时间:2023-12-02 07:08:42 25 4
gpt4 key购买 nike

我的应用程序中有下一个端点:

@GetMapping(value = "/users")
public Mono<ServerResponse> users() {
Flux<User> flux = Flux.just(new User("id"));
return ServerResponse.ok()
.contentType(APPLICATION_JSON)
.body(flux, User.class)
.onErrorResume(CustomException.class, e -> ServerResponse.notFound().build());
}

目前我可以看到文字 "data:"作为一个 body 和 Content-Type →text/event-stream在 postman 中。据我了解Mono<ServerResponse>始终返回 SSE(Server Sent Event) 的数据。是否可以以某种方式在 Postman 客户端中查看响应?

最佳答案

您似乎在 WebFlux 中混合了注释模型和功能模型。 ServerResponse 类是功能模型的一部分。

以下是如何在 WebFlux 中编写带注释的端点:

@RestController
public class HomeController {

@GetMapping("/test")
public ResponseEntity serverResponseMono() {
return ResponseEntity
.ok()
.contentType(MediaType.APPLICATION_JSON)
.body(Flux.just("test"));
}
}

这是现在的功能方式:

@Component
public class UserHandler {

public Mono<ServerResponse> findUser(ServerRequest request) {
Flux<User> flux = Flux.just(new User("id"));
return ServerResponse.ok()
.contentType(MediaType.APPLICATION_JSON)
.body(flux, User.class)
.onErrorResume(CustomException.class, e -> ServerResponse.notFound().build());
}
}

@SpringBootApplication
public class DemoApplication {

public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}


@Bean
public RouterFunction<ServerResponse> users(UserHandler userHandler) {
return route(GET("/test")
.and(accept(MediaType.APPLICATION_JSON)), userHandler::findUser);
}

}

关于spring - 如何在 Postman 中查看 Spring 5 Reactive API 的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44570730/

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