ASP.NET Web API를 연구하고 있지만 요청 본문에서 나오는 복잡한 유형에 대한 설명의 어딘가에서 작성자가 혼동합니다.
전문 ASP.NET MVC 4 : 11 장-ASP.NET 웹 API
"[..] 복합 유형 (기타 모든 것)은 본문에서 가져옵니다. 추가 제한도 있습니다. 본문에서는 단일 값만 올 수 있으며 해당 값은 본문 전체를 나타내야합니다. [... ] "
브래드 윌슨
이 "단일 가치가 몸에서 나올 수있다" 는 그의 의미는 무엇입니까 ? API 포맷터는 본문에서 단일 유형의 개체 만 구문 분석 할 수 있습니까? 예를 들어 설명해 주시겠습니까?
단일 값만 본문에서 올 수 있습니다.
이와 같은 요청 본문이 있다고 가정합니다.
{"Id":12345, "FirstName":"John", "LastName":"West"}
이 JSON이 이와 같은 유형의 매개 변수에 바인딩되기를 원합니다.
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
작업 방법은 다음과 같을 수 있습니다 void Post(Employee emp)
. 그리고 그것은 이렇게 될 수 없습니다 void Post(Employee john, Employee duplicateJohn)
. 본문에서 단일 값만 올 수 있습니다.
그 값은 신체 전체를 나타내야합니다.
이와 같은 동일한 요청 본문이 있다고 가정합니다.
{"Id":12345, "FirstName":"John", "LastName":"West"}
그리고 이와 같은 두 개의 DTO가 있습니다.
public class Identifier
{
public int Id { get; set; }
}
public class Name
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
같은 동작 메서드를 가질 수 없으며 void Post(Identifier id, Name name)
본문이 두 매개 변수에 부분적으로 바인딩 될 것으로 기대할 수 없습니다 . 본문 전체는 하나의 값 에만 바인딩되어야합니다 . 그래서, 같은 수업을
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
요청 본문 전체를 같은 하나의 값에 바인딩하는 void Post(Employee emp)
것은 허용됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다