2015-01-22 2 views
0

매개 변수 유형에 웹 API 구성 문제가 있습니다. 두 유형의 매개 변수를 인식해야합니다. 하나는 int이고 다른 하나는 boolean입니다. WebApi에서 기본 경로는 "api/{controller}/{id}"으로 설정되어 있습니다. 정수를 구문 분석하면 OK이지만 부울 매개 변수를 구문 분석해야합니다. 그래서 내가 /api/controller/1 URL로 갈 때 int 입력 매개 변수를 사용하여 작업해야하며 /api/controller/{true|false} URL로 이동하면 입력이 boolean 인 작업으로 이동해야합니다.웹 API 라우팅 충돌

모든 솔루션? Attribute Routing in Web Api 2Create a REST API with attribute routing에서 언급 한 바와 같이 들으

+0

그냥'api/{controller}/{id : bool}'제약 조건을 사용할 수 있습니다. 그게 너에게 어떻게 작용하니? –

+0

url ("api/{controller}/int | bool")을 api/{controller} 액션 –

답변

3

사용 Route 또는 RoutePrefix 필터 속성.

API 컨트롤러와 그 메소드의 전체 구조를 알지 못하기 때문에 여기에 위의 속성에 대한 두 가지 예를 넣을 수 있습니다. 일반적으로 컨트롤러와 관련된 요청을 필터링하기 위해 Route 특성을 배치합니다. 귀하의 질문에 이런 식으로 뭔가 할 수 있습니다에서 :

[RoutePrefix("api/{controller}")] 

그리고 각각의 방법에 대한 특정 요청을 필터링, 우리는이에 대한 코드의 울부 짖는 소리 라인과 같은 몇 가지 일이 될 수있는 문제의 예를 들어, 각 방법 전에 Route 속성을 사용 boolean 입력 방법 :

[Route("{id:bool}")] 

당신은 내가이 링크를 배치로 언급 한 속성을 사용하는 몇 가지 규칙을 알아야합니다.

+0

으로 리다이렉션합니다. "요청과 일치하는 액션이 ​​여러 개 발견되었습니다 : ..." –

+0

, api/{controller} 액션으로 리디렉션합니다. 좀 더 자세한 예제를 제공 할 수 있습니까? –

+0

@HodzaNdzaho 나는 완전히 대답을 바꾸었다. 귀하의 요구 사항을 완전히 인식하기 위해이 주변에 배치 된 2 개의 기사를 읽으십시오. –