私はビジネス用の REST Api を (C# を使用して) 開発しており、合理的にクリーンでシンプルな状態に保とうとしています。私が取り組んでいる設計上の決定の 1 つは、リソース URI があるとします。
www.mydomain.com/Api/Orders
Order を作成するには、次の json を渡してこの uri に POST を実行します。
{
"ProductNumber": "12345A",
"Quantity": 5
"Cost" : 250.5
"CustomerId" : "912AFD52-8F2F-43A2-87FF-EB65D0A8FD8C"
...etc
}
しかし、サーバー側では、渡されたjsonが基礎となるオブジェクトモデルにシリアル化され、オブジェクトを直接操作できるようにするのは素晴らしいアイデアだと最初に思いました。ただし、Id、CreatedOn、ModifiedOn などの周りに問題がありました。
私のオブジェクトモデルでは、オブジェクトが作成されたときにIDを生成し、データベースに挿入されたときにCreatedOnなどを設定したいと考えています。したがって、理想的には、これらのプロパティを読み取り専用にしたいのですが、読み取り専用の場合、json がオブジェクトにシリアル化されると、Id は入力されません。それらを読み取り専用にしないと、誰かが json を起動してこれらのプロパティを変更する可能性があります。
だから私は、jsonを辞書にシリアライズしてから、辞書からプロパティを取得するオブジェクトを作成する方が良いのではないかと考えていましたか?
正直に言うと、私は全体に混乱しています。