クライアントが HTTP PUT リクエストで送信して親オブジェクトを更新できる次のオブジェクト グラフがあるとします。
{
"Id": 123,
"FirstName": "Joe",
"LastName": "Smith",
"Schools": [
{
"Id": 444,
"Name": "Fun University"
},
{
"Id": 555,
"Name": "Unfun University"
}
]
}
私のサービスでは、学校を更新する唯一の方法は Student を使用することです。ただし、クライアントが「444」IDを変更するのを必ずしも防ぐことはできません。
私の質問は次のとおりです。1. ID 444 の学校が ID 123 の学生に属していることをサーバーで検証するだけで安全ですか? 2. または、クライアントは、学生サービスを使用して学生にリクエストを送信し、学生サービスの学校のリストを使用して、学校サービス (私が作成する) を呼び出し、そこで PUT を実行する必要がありますか?
シナリオ 1 では、http://www.mydomain.com/api/students/123 (PUT) を使用してオブジェクト全体を更新します。
シナリオ 2 では、http://www.mydomain.com/api/schools/444 (PUT)を使用して学校オブジェクトのみを更新します。
今のところ、私の意図はアプローチ#1ですが、これは良いアプローチではありませんか?