【发布时间】:2021-04-20 17:29:44
【问题描述】:
这是我第一次在 SpringBoot 中使用 spring-webflux。我的目标是创建一个 API,它在 POST 正文中接受 JSON 格式的用户列表,并返回包含该列表的响应,该列表也是按日期字段排序的 JSON 格式。排序不是问题,但我不太清楚如何制作这种架构。到目前为止,我有:
-
UserWebfluxApplication(带有@SpringBootApplication)
-
model/User.java (id, name, surname, creationDate)
-
服务/UserService.java(接口)
-
service/UserServiceImpl.java 使用 WebClient 和以下方法实现接口:
@Override public List<User> processUserDataFromUserList() { Mono<List<User>> response = webClient.get() .accept(MediaType.APPLICATION_JSON) .retrieve() .bodyToMono(new ParameterizedTypeReference<List<User>>() {}); List<User> users = response.block(); return users .stream() .sorted(Comparator.comparing(User::getCreatedTime)) .collect(Collectors.toList()); } -
controller/UserController.java(在这里我不知道如何构建此类以达到我的成就,例如使用 curl、Postman 或其他工具测试请求)。到目前为止,我在 UserController 中有这个:
@RestController public class UserController { @Autowired private UserService userService; @PostMapping(value = {"/readUser"}) @ResponseStatus(HttpStatus.OK) public void readUser(@RequestBody List<User> users) { userService.processUserDataFromUserList(); } }
json 请求会是这样的:
{
"id": 951,
"name": "Marco",
"surname": "Polo",
"creationDate": "2021-01-23T02:36:09-08:00"
},
{
"id": 952,
"name": "Estela",
"surname": "Star",
"creationDate": "2021-01-14T18:30:09-07:00"
},
{
"id": 953,
"name": "Jim",
"surname": "Pask",
"creationDate": "2021-01-02T08:22:12+05:00"
},
{
"id": 954,
"name": "Lorena",
"surname": "Cubo",
"creationDate": "2021-02-15T01:01:32-02:00"
}
提前谢谢你。
【问题讨论】:
-
探索以响应实体为返回类型的spring控制器方法
标签: java json spring-webflux