2014-11-20 3 views
0

나는 다음과 같은 제약이 있습니다웹 API 속성 라우팅 제약

http://localhost:7475/api/currencies/ZSHK 

이 이해 그러나 응답 메시지를 만드는가 : 나는 다음과 같은 요청을 한 경우

[Route("api/currencies/{currencyCode:length(3)}", Name="GetCurrencyByCode")] 
public HttpResponseMessage Get(string currencyCode) 

내가 허용되지 405 방법을 얻을 수를 "요청한 리소스가 http 메서드 '가져 오기'를 지원하지 않습니다." 좋은 REST 시민이되고 싶지만이 메시지는 클라이언트에게 실제 문제가 무엇인지에 대한 어떤 표시도하지 않습니다.

누구에게이 시나리오에 대한 권장 사항이 있습니까? 반환되는 표준 메시지를 변경하는 방법이 있습니까?

주 - 저는 405에 대해 'catch all'처리기를 만들고 싶지 않습니다. 몇 가지 해결책을 보았지만이 특정 라우팅 속성을 좀 더 구체적으로 목표로 삼고 있습니다.

답변

0

경로가 길이에 의해 제한되어 일치하지 않아서 405 오류가 발생합니다. 다른 오류 또는 응답을 반환 할 수있는 제약없이 추가 경로를 추가 할 수 있습니다. 구속 조건이있는 경로는 구속되지 않은 경로보다 먼저 계산되므로 가능한 경우 구속 경로가 더 일반적인 경로보다 먼저 일치합니다.