web-dev-qa-db-ja.com

同じエンティティを表すメソッド固有のDTOに名前を付ける方法は?

Web APIを構築しています。コントローラーメソッドに意味を与えるには、特定の操作ごとに使用するプロパティを指定するクラスが必要です。これによりコードが理解しやすくなり、自動生成されたAPIドキュメントもより意味のあるものになります。

以下のようなクラスの命名方法に関するガイダンスを提供できる既存のパターンまたは少なくとも準標準はありますか?

// Used for POST /entities or PUT /entities/:id
class EntityCommandDto
{
    public string EditableProperty { get; set; }
}

// Used for GET /entities as IEnumerable<EntityQueryDto>
class EntityQueryDto : EntityCommandDto
{
    // Id is read only so no need to have it in the base class
    public int Id { get; set; }
}

// Used for GET /entities/:id
class ExpensiveQueryDto : EntityQueryDto
{
    // Don't want this when getting the whole colletion so I created a separate class
    public object ExpensiveRelatedEntity { get; set; }
}
3

まあ、あなたは一つのことについて正しいです。これらの名前はひどいです。ここで間違っているのは、それらが使用されているメソッドについて教えてくれると、名前を付ける必要があることの手掛かりが得られると考えていることです。

あなたは何かをモデリングする必要があります。その何かは明確なアイデアである必要があります。名前がはっきりしていることは明らかです。 「私が名前を付けたこの1つのメソッドで使用されるデータ転送オブジェクト」よりも優れているはずです。

彼らが何のためにあるのか教えてください。彼らが表すもの。彼らがモデル化するもの。ドメインに表現される機会を与えてください。

3
candied_orange