1

GET メソッドが DTO を返す Web API を構築しています。特定の状況下で、クライアントに送信されるデータの量を制御するために、これらの DTO から不要なプロパティが取り除かれるように構築したいと考えています。たとえば、電子メール DTO の 1 つを返すときに、クライアントに、電子メールの本文ではなく件名、日付、および ID のみが必要であることを指定してもらいたいことがあります。もちろん、他のシナリオでは、電子メールの本文が必要です。

MVC WebApi でこれを行う最善の方法は何ですか? MediaTypeFormatters を調べましたが、コンテンツではなくデータの形式 (JSONP、XML) に重点を置いているようです。

4

1 に答える 1

0

カスタムのメディアタイプが必要なようです。

これは、カスタム MediaTypeFormatter と組み合わせて使用​​できます。

たとえば、独自のメディアタイプを定義できます (これは名前の悪い例です)。

application/vnd.me-shortform

次に、コードで電子メール本文の入力を省略し、デフォルトのフォーマッタで結果をフォーマットすることができます。

または、独自の MediaTypeFormatter (既存のものをサブクラス化) を作成し、それをカスタム メディアタイプに登録することもできます。

次に、MediaTypeFormatter で、DTO の属性を介して、または同様の方法で電子メール本文が不要であると判断し、結果の一部としてそれを省略することができます。

Vendor Media Types の Mark Seeman が良い出発点になるはずです。

于 2012-07-30T14:40:22.583 に答える