web-api を使用して、/api/cat/orders/ に移動します
以下のルートとコントローラーメソッドを指定しました。「extid」をオプションにしたので、「ApiRouteWithCategoryAndExtId」ルートと「GetMessageByCategoryExtId」メソッドが使用されることを期待していました。ただし、デフォルトの Get メソッドを使用しています。
(/api/cat/orders/id18 は GetMessageByCategoryExtId を使用しますが、extid はオプションではありません)
私は何を間違っていますか?
ルート:
config.Routes.MapHttpRoute(
name: "ApiRouteUniqueId",
routeTemplate: "api/def/{id}",
defaults: new { id = RouteParameter.Optional, controller = "Default" }
);
config.Routes.MapHttpRoute(
name: "ApiRouteWithCategoryAndExtId",
routeTemplate: "api/cat/{category}/{extid}",
defaults: new { extid = RouteParameter.Optional, controller = "Default"}
);
コントローラ:
public string Get()
public HttpResponseMessage GetMessageById(int id)
public HttpResponseMessage GetMessageByCategoryExtId(
string category, string extid)