私は、web api を開発しようとしている asp.net mvc で最初のステップを実行しています。
次のルーティング機能があります。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "cdApiDefault",
url: "api/{controller}/{action}/{token}/{mid}/{id}",
defaults: new {
token = UrlParameter.Optional,
mid = UrlParameter.Optional,
id = RouteParameter.Optional }
);
}
および次のコントローラー:
namespace cdapi.Controllers
{
public class PostsController : ApiController
{
// GET api/posts
public IEnumerable<string> Get()
{
return new string[] { "GET_value1", "GET_value2" };
}
// GET api/posts/5
public string Get(int id)
{
return "value!!!!!!!!!!!!!!!!!";
}
// POST api/posts
public void Post([FromBody]string value)
{
}
// PUT api/posts/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/posts/5
public void Delete(int id)
{
}
public String GetTest(String token, String mid)
{
return token + " - " + mid;
}
}
}
次の呼び出し
hxxp://localhost:52628/api/posts/5
(私のブラウザでは)何らかの結果が得られます。つまり、関数 GET が呼び出され、値が返されます。
しかし、試してみると
hxxp://localhost:52628/api/posts/GetTest/MyTestToken/myTestMid
「リソースが見つかりません」というエラー メッセージが表示されます。
{Action}には呼び出す関数を含める必要があり、'token'と'mid'には指定した値を含める必要があると考えました。私は何を間違っていますか?