2012-12-20 1 views
9

중첩 된 개체가있는 개체를 ASP.NET 웹 API GET 메서드에 전달하기위한 URL 구문은 무엇입니까? 이것이 가능한가? http://mydomain/mycontroller?...중첩 된 복합 유형을 전달하기위한 REST URL 구문은 무엇입니까?

MYCONTROLLER GET 방법 :

public void Get([FromUri]MyType myType) { ... } 

C 번호 유형 :

public class MyType 
{ 
    public string Name { get; set; } 
    public NestedType Foo { get; set; } 
} 

public class NestedType 
{ 
    public int Bar { get; set; } 
} 
+0

이 흥미로운 관련 논의는 다음과 같습니다 http://stackoverflow.com/questions/7104578/rest-complex-composite-nested -resources – JayC

답변

9

그것은 가능하다 -이 형식으로 URL을 전달하려고 :

?myType.Foo.Bar=3&myType.Name=Maggie 
+1

감사합니다 매기, 당신의 대답은 완벽합니다. –

+0

'MyType'이 다음과 같은 속성을 가지고있는 경우 비슷한 것을하려고하면 어떻게 될까요? public IEnumerable Foos {get; 세트; }'?? : OI 그냥 시도하고 querystring 넣을 알아낼 수 없다 :(나는 간단한 형식 ('? MyType.MyString = firstElement & MyType.MyString = secondElement')의 컬렉션을 가진 복잡한 형식에 대해 이것을 한 적이 있지만 다른 복잡한 유형의 콜렉션을 가진 복합 유형은 절대 없어! : ( –

+0

Woah. 방금 대답을 찾았습니다 : http://stackoverflow.com/a/13963155/326110 당신은 락! –

0

다음 수행하는 GET 구현하려는 경우) 1) 이름 2 수를 Foo에서 가져옵니다 .Bar

그런 다음 쿼리 문자열 매개 변수를 사용할 수 있습니다. REST pass multiple inputs to GET method

GET을 실제로 시도하지 않고 POST 데이터를 서버에 보내려는 경우 POST를 사용해야합니다.

+0

Lee는 자신의 질문에서 GET을 구체적으로 언급했지만 HTTP 동사에 관계없이 기술적 인 측면에서 질문의 정신이 적용됩니다. 우리가 그의 컨트롤러의 Post() 메소드에 대해 논의하고 있고 URI에 전달 된 매개 변수를 받아들이 길 원했다면 (또는 필요하다면) 상황은 동일 할 것이다. "POST를 사용하면됩니다"라고 말하면 질문 주위에 치마처럼 답을 얻지 못합니다. –

관련 문제