与えられたuri...
http://localhost:5613/api/user/1/HasCompletedInitialScreen
次のルートを設定しています...
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "ApiUserHasCompletedInitialScreen",
routeTemplate: "api/user/{id}/{hascompletedinitialscreen}");
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
とコントローラーのアクション...
[HttpGet]
[ActionName("HasCompletedInitialScreen")]
public HttpResponseMessage HasCompletedInitialScreen(int id)
{
var response = Request.CreateResponse<bool>(HttpStatusCode.Created, true);
response.Headers.Location = GetLocation(id);
return response;
}
ただし、404が表示されます。これを機能させるためにルート構成やコントローラーアクションを修正するにはどうすればよいですか?
どうもありがとう!!
アップデート
受け入れられた回答に基づいて、APIルート定義を次のように変更しました。これが他の誰かに役立つことを願っています...
config.Routes.MapHttpRoute(
name: "QueryApi",
routeTemplate: "api/{controller}/{id}/{action}");