私はこの問題のチュートリアルが見つからないので、簡単にしようと思う、それはREST APIを設計するベストプラクティスに属すると思う。役割(ID、名前) - -Spring POST json entities
私は2つのエンティティ 持っているユーザー(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オブジェクトを作成し、
それとも私はこのような投稿をしなければならない:
{
"id": 1,
"name": "Luis",
"role_id" : 1,
"another" : bla bla bla
}
だからこの程度コントローラknwosは、まずそれが使用して役割を見つけるとき、(Role.findByIdを言うことができます)もちろん、私はサービスを利用レイヤーを作成し、それをユーザーに添付します。
これにはどのような方法が最適ですか?
ありがとうございます。
偉大な説明...私はこの方法を持つ、ユーザー内のロールオブジェクトを渡すときにすることを意味し、スプリングが知っているかの質問...について: ' 「役割」:{ 「ID」:1 } を' 又はこのよう ' "役割":{ "名前": "管理者" } ' あるいは ' "ROL":{ "ID":1、 "名前":管理者、 "users":[ ] } すべてのプロパティを取得してから、どのロールが話しているかを知るようにマップしますか?つまり、ById、ByName、ByAnyOtherPropertyをフェッチしますか? –
あなたはその時点でコントローラにいて、そこに書いたコードを実行します。だから、あなたが好きな戦略を使って、Springが何かを取得するのではなく、あなたの*その時点でsaveUserが実行されていることに注意してください。おそらく、ロールを決定する属性を探してUserModelインスタンスを調べるでしょう。 IDの場合は、IDでフェッチを実行します。別の表現を使用する場合は、別のフェッチ戦略を使用します。 – MaVVamaldo