2017-05-26 13 views
0

web apiコントローラメソッドで動的を返すかオブジェクト型を取得するのが通常の習慣ですか、リクエストと一般的な「完全コード」の検証でカスタム契約タイプを使用する必要がありますか?例えばweb apiの結果として動的に使用される

ここでコードスニペットである:

public dynamic CreateOrUpdate([FromBody]object body) 
    { 
     return _blService.CreateOrder(body); 
    } 

CreateOrderをデシリアライズし、保存実行し、IDまたはエラーを返します。

動的データを返す他のメソッドがあります。 blServiceは、オブジェクトのリストまたは単一オブジェクトごとに異なる匿名型を返します。

public dynamic GetOrdersByTypeId([FromQuery]Guid typeId, [FromQuery]int? pageIndex) 
    { 
     return _blService.GetOrdersByTypeId(typeId, pageIndex); 
    } 

    public dynamic GetOrderById([FromQuery]Guid id) 
    { 
     return _blService.GetOrderById(id); 
    } 

答えて

0

dynamic作品を戻しながら、一般的なコンセンサスは、(事前に定義されたメソッドのホストを使用することを可能にする、あなたはIHttpActionResultをreturingする必要があることのようですこのようOk()InternalServerError()BadRequest()NotFound()、とりわけ、適切に戻る前に、リクエストのHTTPステータスコードを設定し、Redirect()として。また

、私はいくつかPOCOSを書き、それらを返すが、それはに降りてくるでしょう好みの問題です。それらを別のプロジェクトに追加することもできますが、プロパティを追加するときに実際の非直列化コードを更新する必要はありません。

よく定義されたタイプを使用すると、それ以外の場合は自分自身を実装する必要がある検証を購入するので、私はその[FromBody]object bodyの大ファンでもありません。 DataAnnotations名前空間で見つかった属性を持つ前記タイプをデコレートすると、さらに優れたものになります。

関連する問題