3

私はビジネス用の 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を辞書にシリアライズしてから、辞書からプロパティを取得するオブジェクトを作成する方が良いのではないかと考えていましたか?

正直に言うと、私は全体に混乱しています。

4

1 に答える 1

0

誰かがあなたのサービスへのリクエストで何かを言ったからといって、それを正確に実行しなければならないわけではありません。簡単な方法は、設定できるプロパティのホワイトリストを作成し、オブジェクトのキーを調べてホワイトリストにあるものをすべて削除することです。次に、そこに必要な値を入力しますが、これはサーバーによって生成されます。(許可されたキーの値の形式が期待どおりであることも検証する必要があります。)

于 2012-06-27T08:15:14.447 に答える