0
我正在開發一個API,使用接近aspnetwebstack Codeplex項目(如果任何人感興趣的2012-05-09 4592e2f63c55)的最新比特。獲取單個並獲取ApiController上的所有方法
我有以下途徑:
context.Routes.MapHttpRoute("SiteSpecific", "Api/{controller}/{customerId}/{siteToken}/{id}",
new { id = UrlParameter.Optional });
什麼我目前正試圖做的就是實現獲得單和獲取所有在ApiController
。在獲取所有的方法,進行測試如下:
public IEnumerable<EditChatResponse> Get(string customerId, string siteToken)
{
return new []{new EditChatResponse{Template = "Get All"}, };
}
而獲得單目前以下:
public EditChatResponse Get(string customerId, string siteToken, string id)
{
return new EditChatResponse {Template = "Get Single"};
}
然而,路由總是選擇找一個方法:
$ curl -i -H "Accept: applicaiton/json" http://localhost/api/chatresponse/a/b
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 14 May 2012 18:06:26 GMT
Content-Length: 66
{"Id":0,"Template":"Get Single","Inherited":false,"Enabled":false}
$ curl -i -H "Accept: applicaiton/json" http://localhost/api/chatresponse/a/b/c
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 14 May 2012 18:06:28 GMT
Content-Length: 66
{"Id":0,"Template":"Get Single","Inherited":false,"Enabled":false}
我嘗試將所有方法重命名爲GetAll
,正如我在一些示例中所看到的,使用[HttpGet]
來裝飾它,但它仍然選擇單一方法。
我完全錯過了什麼,或者我是否需要以這種不同的方式去做(我看到的大多數示例看起來與beta版相關,而不是CodePlex的最新版本)?