這可能是一個愚蠢的問題..但到底是什麼,我有點難倒和沮喪。WCF WebAPI路由
我正在嘗試向我的應用程序添加一個REST服務。我想支持兩種具有可選參數的GET類型。
在全球ascx我有;
routes.Add(new ServiceRoute("api/userstats", new HttpServiceHostFactory() { Configuration = config }, typeof(RESTService.APIs.UserStatsAPI)));
然後在那個控制器中我有;
[WebGet(UriTemplate = "{userguid}")]
public IQueryable<UserStat> Get(string userguid)
{
return null;
}
[WebGet(UriTemplate = "{userguid}/{genericstatid}")]
public IQueryable<UserStat> Get(string userguid, int genericstatid)
{
return null;
}
所以,基本上你可以查詢一個用戶的所有統計數據,或者只是一個特定類型的統計數據。當我嘗試運行該應用時,它會抱怨,因爲我有兩個GET定義。
不能有兩個操作在具有相同名稱相同的合同,
我可以理解爲什麼,但我不知道如何解決它。如果是MVC,我會定義不同類型的路由,但我不確定如何在服務路由中完成此操作。
感謝您的任何幫助。我要去喝杯咖啡,看看是否有幫助。
這是一個很好的觀點!我現在就放棄它。回來一秒鐘。 :) – philbird
這似乎不起作用,因爲它期望至少有兩個參數,所以它提供了一個404.我認爲可能爲操作添加一個名稱,但我還沒有發現。也許我應該使用參數而不是ID ......但對我來說這似乎是一個常見的要求,所以很奇怪,它證明如此困難。 – philbird
我用我的項目中的代碼更新了答案 –