【发布时间】:2020-07-26 22:31:17
【问题描述】:
我是新的 Spring Webflux。我正在编写一个简单的 api,它调用另一个 api 并返回响应。 我遇到的问题是我的 api 接受的请求类型与外部 api 不同。我必须将传入的请求转换为发送到外部 api。我正在使用 Mono 来接收对我的 api 的请求,但是在没有的情况下无法转换为另一个对象块()。
输入
路由器
@Configuration
@EnableWebFlux
public class RouterConfig implements WebFluxConfigurer{
@Bean
public RouterFunction<ServerResponse> routes(UserHandler handler){
return RouterFunctions
.route(POST("/rest/create"),
handler::createUser);
}
}
处理程序
@Component
public class UserHandler {
private UserService service;
public UserHandler(UserService service) {
this.service = service;
}
public Mono<ServerResponse> saveUser(ServerRequest request)
{
Mono<User> user = request.bodyToMono(User.class)
/* currently I am using block to get User object */
User user1 = user.block()
/* convert user to person */
Person p =getPersonFromUser(user);
}
Pojos
class User
{
private String name;
private String id;
private String email;
private String phone;
}
class Person
{
private String email;
/* Combination of id and name */
private String accountNumber;
private String phone;
}
有没有办法可以将 Mono 转换为 Person 对象而不阻塞?
【问题讨论】:
标签: java spring rest spring-webflux project-reactor