2

ユーザーに基づいて異なるビューを構築できることを示唆するこれを見てきました: 同じエンティティに対して異なる json ビュー

ただし、ASP Web API では、Model クラスを使用しているため、新しいプロパティを勝手に追加することはできません。

したがって、たとえば、次の uri がある場合があります。

http://host/api/products/id

モデルを返す:

public class Product{
   public string Code { get; set; }
   public string Description { get; set; }
}

しかし、別の目的でさらに情報を追加したいのですが、他のデータを結合してモデルを構築したり、非常に具体的な方法でデータをフォーマットしたりするため、これは費用がかかるとします。

http://host/api/productsspecial/id

モデルを返す:

public class ProductSpecial{
   public string Code { get; set; }
   public string Description { get; set; }
   public decimal Price { get; set; } //assume expensive to look up
}

したがって、明らかに、データに対して異なるビューを返す 2 つの異なるコントローラーで、これを行う方法があります。私の質問は、これで問題ないですか、それとももっと良い方法がありますか?

とにかく、たとえばこれを行うことができます:http://host/api/products/id?includeprice=trueそしてそれを使用して代替モデルを返しますか? そして、それは良い考えですか?

4

1 に答える 1