단일 DTO로 필드의 하위 집합을 반환 할 수있는 방법 중 하나는 DTO의 선택적 속성에 대해 null 가능 유형을 지정하는 것입니다.
[DataContract]
public class Dude
{
[DataMember]
public int Id { get; set; }
[DataMember(EmitDefaultValue = false)]
public string FirstName { get; set; }
[DataMember(EmitDefaultValue = false)]
public string MiddleName { get; set; }
[DataMember(EmitDefaultValue = false)]
public string LastName { get; set; }
[DataMember(EmitDefaultValue = false)]
public int? IQ { get; set; }
}
당신은 클라이언트가 응답에보고 를 채울 관심을 가질 것입니다 필드의 목록을 얻을해야합니다 단지 DTO의 예에서와 당신은 다음과 같이 반환합니다.
return new Dude() { Id = 123, FirstName = "Johnny" };
이렇게하면 { "Id":123, "FirstName":"Johnny" }
과 같은 JSON이 전송됩니다. 다른 클라이언트가 LastName
라고 말하면 new Dude() { Id = 123, LastName = "Bravo" };
을 반환하고 JSON은 { "Id":123, "LastName":"Bravo" }
이됩니다.
이것은 XML과 JSON 모두에서 작동합니다. JSON만으로도 괜찮 으면 속성을 적용 할 필요가 없습니다. null을 무시하도록 JSON.NET에 지시해야합니다.
config.Formatters.JsonFormatter.SerializerSettings =
new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
};
마지막으로 필드 목록을 가져 오는 방법은 API 디자인에 달려 있습니다. 액션 필터를 사용하여 요청에서 해당 표준 필드를 가져와 지속성 저장소에서 데이터를 가져올 수 있습니다.