ユーザーに基づいて異なるビューを構築できることを示唆するこれを見てきました: 同じエンティティに対して異なる 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
そしてそれを使用して代替モデルを返しますか? そして、それは良い考えですか?