如何从服务器上的帖子接收更多的正文数据

时间:2018-07-10 05:29:36

标签: spring post fetch

我正在尝试从客户端向服务器发送新用户+带有此代码的验证ID

 fetch('http://localhost:8080/users/student', {
            method: 'POST',
            body: JSON.stringify({"email":email, "firstName": firstName, "lastName": lastName,
            "idToken": idToken}),
          headers: {
            'content-type': 'application/json'
          },
        }).then(response => { return response.json();
        }).then(data => {
          console.log(data);
        });

而我控制器上的方法是

@RequestMapping(value = "/student", method = RequestMethod.POST)
private User createStudent(@RequestBody User user) {
    user.setId(null);
    user.setUserType(UserType.STUDENT);
    //verify the user and create custom role
    return userService.save(user);
}

问题是我无法使用user.idToken访问验证令牌,因为idToken不是User属性,那么如何分别接收带有user属性和idToken的正文?

2 个答案:

答案 0 :(得分:1)

您可以选择以下方法之一:

  1. 考虑将User类扩展为类似 UserWithToken,其中将包含来自 User类,还有idToken
  2. 另一种方法可能是使用QueryParam并将其传递到URL中。 例如:/student?idToken=your-token-id

答案 1 :(得分:1)

您可以创建一个扩展User类的类:

public class UserDto extends User {

    private String idToken;

    // getter / setter
}

因此,您可以将此对象传递给您的方法:

private User createStudent(@RequestBody UserDto user) {
    // user.getIdToken(); available
}

如果需要返回令牌,可以将返回类型更改为UserDto