如果我想像這樣傳遞 JSON,我想問你我的休息控制器應該是什么樣子(在 springboot 中)
user: {email: "c", password: "c", username: "c"}
順便說一句,看起來像這樣的 JSON 可以正常作業:
{email: "c", password: "c", username: "c"}
所以我認為它取決于 JSON 中的“用戶”字,但問題是我的前端發送所有這樣的請求,所以更好的方法是讓它在后端可操作。
因為一個我的實際看起來像:
@PostMapping("/users")
public void register(@Valid @RequestBody ApplicationUserEntity newUser){
registerService.registerNewUser(newUser);
}
沒有實際作業。
這是 ApplicationUserEntity 類:
@Entity
@Data
@Table(name = "users")
public class ApplicationUserEntity implements UserDetails {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@JsonIgnore
private Long userId;
@JsonProperty("email")
private String email;
@JsonProperty("username")
private String username;
@JsonProperty("password")
private String password;
public ApplicationUserEntity() {
}
public ApplicationUserEntity(String email, String username, String password) {
this.email = email;
this.username = username;
this.password = password;
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return Collections.singleton(new SimpleGrantedAuthority("ROLE_USER"));
}
@Override
public String getPassword() {
return password;
}
@Override
public String getUsername() {
return username;
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return false;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
uj5u.com熱心網友回復:
您的請求正文可以是以下物件:
public class Request {
private ApplicationUserEntity user;
// getters, setters ...
}
它的欄位是您創建的物體物件。在這種情況下,您的控制器方法將如下所示:
@PostMapping("/users")
public void register(@Valid @RequestBody Request newUser){
registerService.registerNewUser(newUser);
}
在這種情況下,JSON 請求將是:
{
user: {
// fields of the ApplicationUserEntity
}
}
注意:始終建議您使用DTO 物件作為請求和回應物件。因此,在這種情況下,您寧愿擁有一個包含電子郵件、用戶名、密碼欄位的 DTO 物件,并將該物件作為欄位放入 Request 類中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/455371.html
上一篇:如果我使用復合鍵,SpringBootJPA如何處理@Id
下一篇:@Autowired或私人決賽
