到目前爲止,我已經使用Spring Boot完成了一個(REST)項目,並且非常喜歡它。我發現有點狡猾的一件事是我對@RequestBody
的理解。我是否需要爲Spring Boot中的每個@RequestBody分開一個對象
假設我有下面的POST方法來登錄用戶。我的用戶實體可能包含一些屬性,而不僅僅是用戶名和密碼,我希望發佈後請求。在這種情況下,我看不到任何其他選擇,只能製作一個額外的對象(LoginRequest)來保存傳入數據的數據。
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<User> login(@RequestBody LoginRequest request) {
User p = null;
if (request != null) {
p = User.login(request.getEmail(), request.getPassword()); // validates and returns user if exists
if (p != null){
return new ResponseEntity<User>(p, HttpStatus.OK);
}
}
throw new IllegalArgumentException("Password or email incorrect");
}
類似地,我想要@ResponseBody
返回其中例如密碼被排除的用戶對象的最小化版本。
這個問題的一些標準方法是什麼?我真的必須爲每個'json-view'創建一個單獨的對象嗎?我在Python中做了一些REST的東西,在這裏我只需要一個包含請求屬性的字典。任何類似的方法?
您是否想忽略某個屬性的值作爲返回視圖或作爲請求讀取的同一類? – Zico