2014-11-10 3 views
0

OData V4로 업그레이드하면 라우팅 규칙이 변경되었음을 알게되었습니다. 그래서 그 대신웹 API 2.2 및 OData V4 경로 표기 규칙

http://somesite.com/api/products/1 

의 당신은했을

http://somesite.com/api/products(1) 

이제이 향후 새로운 애플 리케이션을위한 괜찮지 만, 우리는 기존 애플리케이션에 대한 기존의 URL의를 지원하기 위해 필요에 따라. 당분간 URL 또는 전통적인 URL을 모두 지원할 수있는 방법이 있습니까?

나는 예를 들어, 즉

[ODataRoute("{key}")] 
public async Task<IHttpActionResult> Put([FromODataUri] string key, Dealer dealer) 
{ 
    // some logic code here   
} 

내가

The path template '{key}' on the action 'Put' in controller 'Dealers' is not a valid OData path template. Resource not found for the segment '{key}' 
+0

'[ODataRoute ("Products/{key}")]'해 보셨습니까? –

+0

예. 그래도 같은 문제입니다. – TYRONEMICHAEL

+0

OData URL 규칙에서 http://somesite.com/api/products(1) 만 지원됩니다. "http://somesite.com/api/products/1"이 이전 버전의 OData로 할 수있는 것인지 확실하지 않습니다. 당신은 OData V4 로의 "업그레이드"에 대해 언급 했었습니다. 이전 OData 버전이나 순수한 Web API에서 업그레이드하고 있습니까? – QianLi

답변

1

이전 버전에서 OData v4로 전환하는 경우는, 여러 깨는 변화가 다음과 같은 오류를 얻을 다음 예 ..이있는 경우 , v3 클라이언트는 v4 서비스에 의해 반환 된 응답을 소비 할 수 없습니다 ... 따라서 uri는 사용자의 문제 중 가장 적은 것일 수 있습니다 ..

기존 클라이언트를 지원할 수 있습니다. 그런 다음 유일한 옵션은 동일한 서비스의 두 버전을 호스팅하는 것입니다.

관련 문제