我設置了一個ASP.NET MVC 4 Web API來接受來自第三方服務器的請求,而我根本找不到如何設置路由映射。 假設第三方服務器期望得到答覆爲:Web API路由映射到根
http://[my_server]/authorize?user=[user name]&session=[session token]&item=[item]
http://[my_server]/release?user=[user name]&session=[session token]
或者,請求可以用專用的路徑,即:
http://[my_server]/***api***/authorize?user=[user name]&session=[session token]&item=[item]
http://[my_server]/***api***/release?user=[user name]&session=[session token]
我希望能夠支持這兩種選擇。
其他請求,繼傳統的/controller/id
表單之後,也應該實現,但我想把重點放在上面(我甚至不確定Web API是否應該到這裏)。
我寫了下面的控制器:
public class MyController : ApiController
{
[HttpGet]
[ActionName("authorize")]
public string Authorize(string user, string session, string item)
{
...
// return "OK" or "DENY";
}
[HttpGet]
[ActionName("release")]
public string Release(string user, string session)
{
...
return "OK";
}
}
,並試圖一切我能找到SO和WebAppConfig.Register
其他地方,但我不斷收到一個404錯誤,當我嘗試在瀏覽器的請求:
http://localhost:22332/api/authorize?user=ury&session=token&item=an_item
我的問題是,我必須做什麼 - 特別是在WebAppConfig.Register
和控制器 - 爲了服務上述請求(假設我的測試URL是正確的...)?
謝謝馬克。 我不想忽略「api」,也不想使用控制器前綴,並且我沒有使用{id}參數(除非我錯過了某些內容)。 我嘗試了routeTemplate:「{action}」,但我得到了404頁面。 – ury
好的,我已經更新了我的答案。希望這是你所追求的。 –
聽起來很簡單,但仍然沒有去......我得到404,資源無法找到(資源是「授權」,「釋放」等)。 我一遍又一遍地檢查拼寫(通常的嫌疑犯),沒關係。任何想法如何找出發生了什麼問題? – ury