我會盡量簡化它,因爲我找不到有關此問題的教程,我認爲它屬於設計REST API的最佳實踐。Spring POST json實體
我有兩個實體 - 角色(ID,姓名) - 用戶(ID,姓名,角色等)
當進行POST請求某些控制器是什麼做的最好的方法,以json的方式。
{
"id": 1,
"name": "Luis",
"rol":{
"id": 1,
"name":Administrator,
"users" : [
//I think this is for the bidirectional relationship so
can I avoid this property as well??
]
},
"another" : bla bla bla
}
對於這種方法,我必須把所有相關實體的屬性?這意味着我必須創建一個具有此結構的JSON,或者可以省略屬性,這裏有個問題擺脫了我的頭腦Spring如何知道這是一個實體,因此它可以創建一個Role對象並因此與User建立關係?
還是我必須張貼這樣的:
{
"id": 1,
"name": "Luis",
"role_id" : 1,
"another" : bla bla bla
}
所以,當這個控制器knwos,首先它會發現通過使用角色,可以說Role.findById()當然我使用的服務圖層...然後將其附加到用戶。
這是最好的方法是什麼?
謝謝。
很好的解釋...關於春天是怎麼知道的問題......我的意思是路過的時候裏面的用戶角色對象,有這樣: ' 「角色」:{ 「ID」:1 } ' 或這樣 ' 「角色」:{ 「名」: 「管理員」 } ' 甚至 ' 「ROL」:{ 「ID」:1, 「名」:管理員, 「用戶」:[ ] } ' 它是否獲取所有屬性,然後映射它們以知道哪個角色在說?我的意思是,它是否獲取ById,ByName,ByAnyOtherProperty? –
當時你在你的控制器中,它執行你在那裏寫的代碼。所以*你*而不是Spring會使用你喜歡的策略獲取某些東西。請記住,在這一點saveUser正在執行。可能你會在你的UserModel實例中尋找確定角色的屬性。如果它是一個ID,您將通過id執行一次抓取。如果您決定使用不同的表示形式,則會使用另一個獲取策略。 – MaVVamaldo