2016-07-28 3 views
0

나는 다음과 같은 형식으로 호출 할 수있는 ASP.Net 웹 API 제공하고자 :매개 변수 옵션이있는 Web API 라우팅?

HTTP를 : // myApiServer/API/MyLookupMethod/GetForIVR/PHONENUMBER/8005551212

또는

HTTP : // myApiServer/API/MyLookupMethod/GetForIVR LookupType = PHONENUMBER & LookUpValue = 8,005,551,212

두 통화 중 어느 것으로도 사용할 수있는 경로를 설정할 수 있습니까?

나의 현재 경로는

[Route("api/user/YourMethodName/{id}/{param2}")] 
[HttpGet] 
public HttpResponseMessage YourMethodName(int id = 0, bool param2= true) 

가 작동 희망 라우팅 속성을 사용하는

config.Routes.MapHttpRoute(
name:"MyRoute", 
routeTemplate:"api/{controller}/{action}/{Lookuptype}/{lookupvalue}" 
); 

답변

0

속성 기반 라우팅 즉 컨트롤러 및 메소드의 특정 라우팅을 사용할 수 있습니다. 또한이 URL MyLookupMethod/GetForIVR? LookupType = PhoneNumber & LookUpValue = 8005551212와 같이 쿼리 문자열로 2 개의 매개 변수를 전달해야하며이 매개 변수는 메서드 매개 변수로 자동으로 파싱됩니다.

public class SomeController : ApiController 
{ 
    // GET MyLookupMethod/GetForIVR?LookupType=PhoneNumber&LookUpValue 
    [Route("MyLookupMethod/GetForIVR")] 
    public Book Get(int LookupType, int LookUpValue) { ... } 

} 
관련 문제