我有以下控制器方法来获取ID数组,然后将其删除,但是我从react发送的内容在这里没有被捕获。
@DeleteMapping({"delete-user"})
public GenericResponse deleteUser(@RequestBody String[] ids, Errors errors) {
if (errors.hasErrors())
throw new ParseException();
return userService.delete(Arrays.asList(ids));
}
反应请求代码段
yield call(userDeleteService, payload.ids)
什么是有效载荷
callback: undefined
ids: Array(1)
0: "08ddc3f3-9df3-463f-8d95-25a4633f24b7"
length: 1
这是从React端发送的请求。
http://localhost:8080/user/delete-user?0=08ddc3f3-9df3-463f-8d95-25a4633f24b7&1=11036b08-8daa-44ef-a557-9723f20b8911&
答案 0 :(得分:1)
让我们稍微修改一下您的端点。
您要基于ID列表删除用户:
/users
处公开DELETE端点要比在/users/delete-user
中公开DELETE端点要好。DELETE
动词,而不是GET,POST或其他任何东西。要检索ID列表,您应该将数组包装在一个类中:
public class DeleteUserDTO {
private List<String> ids;
// getter + setter
}
然后将此对象用作请求正文:
@DeleteMapping
public GenericResponse deleteUser(@RequestBody DeleteUserDTO dto, Errors errors) {
if (errors.hasErrors())
throw new ParseException();
return userService.delete(dto.getIds());
}