Код
@AllArgsConstructor
@Configuration
public class RoutesConfig {
private final ModelMapper modelMapper;
private final UserService userService;
...
@Bean
RouterFunction users() {
return RouterFunctions.route(
GET("/api/users"),
(req) -> ServerResponse
.ok()
.body(userService.findAll().flatMap(usr -> Mono.just(modelMapper.map(usr, UserDto.class))
),
UserDto.class)
)
.and(RouterFunctions.route(
GET("/api/users/{userId}"),
(req) -> ServerResponse
.ok()
.body(userService.findById(Long.parseLong(req.pathVariable("userId")))
.flatMap(usr -> Mono.just(modelMapper.map(usr, UserDto.class))), UserDto.class)))
.and(RouterFunctions.route(
POST("/api/users"),
(ServerRequest req) -> {
Mono user = req.bodyToMono(User.class);
return ServerResponse
.ok()
.body(user.flatMap(userService::addUser)
.flatMap(usr -> Mono.just(modelMapper.map(usr, UserDto.class))), UserDto.class);
}));
}
}