返されるエンドポイントに応じて、クラスの異なる DataMembers を返すことは可能ですか?
あるエンドポイントからはクラスの基本的な DataMembers だけを返したいのですが、別のエンドポイントからは同じクラスのより詳細なメンバーを返したいと思っています。
私の考えでは、基本的なクラスを持ち、より詳細な情報を持つ別のクラスを派生させて、さまざまなエンドポイントからこれらを返すことができますが、これを達成できる別の方法があるかどうかも疑問に思っていましたか?
あなたの提案は完全に合理的です。とにかく、これらのクラスは (おそらく) DTO であり、その全体的なポイントは、ビジネス モデルをメッセージ モデルから分離することです。2 つのメッセージ モデルがある場合、一方がもう一方を派生 (または包含) させても問題ありません。
代替モデルはどのように見えるでしょうか? それらのデータ メンバーがどのサービスに属しているかを示す複雑な注釈を持つ単一の型? これはすぐに扱いにくくなり、ビジネス オブジェクトがこのモデルにどのようにマップされるかを考慮していません (つまり、どのエンドポイントが呼び出されているかをマッピングで知る必要があるでしょうか? それは非常に醜いです)。
これだけ:
public class EntityBase
{
// basic details here
}
public class EntityDetails: EntityBase
{
// more complex details initialised here
}
次に、これらに対してエンドポイントを強く型付けし、マッピング ロジックを共有して、目的を達成できます。