モデル クラスと DTO クラスを含むモバイル サービスがあります。Fluent API を使用してこれらをマッピングし、CRUD 操作を実行できるようにしましたが、一部のインスタンスで返される JSON 応答に問題があります。
たとえば、ユーザー名とパスワードを持つ User エンティティを考えてみましょう。ユーザーを登録するには、次のような PostUserDTO メソッドがあります。
// POST tables/UserDTO
public async Task<IHttpActionResult> PostUserDTO(UserDTO item)
{
string hashString = PasswordHash.CreateHash(item.Password);
item.Password = hashString;
UserDTO current = await InsertAsync(item);
current.Password = "";
return CreatedAtRoute("Tables", new { id = current.Id }, current);
}
メソッドでは、クライアントから送信されたパスワード プロパティを読み取り、それをソルトでハッシュし、送信されたオブジェクトの値を置き換えてデータベースに保存します。その後、パスワードを空にして、ハッシュされた結果が失われないようにします。戻ってきた。
この場合のベスト プラクティスは、応答から password プロパティを省略することです。これは、テーブル内のすべてのユーザーを取得するときにも発生するはずです。特定の情報のみを返したいのですが、サーバーによって生成された一部の情報は、応答。
回答から情報を選択または変更するにはどうすればよいですか? 必要なすべての種類の応答に対して、他の DTO を作成する必要がありますか?