以前は、2 つの方法があり、1 つに と[WebGet]
のラベルを付けました。[WebInvoke(Method = "POST"]
指定した URL に対して GET または POST を実行すると、常に正しいメソッドが呼び出されます。
URL は次のとおりです。
POST: fish-length
GET: fish-length?start-date={startDate}&pondId={pondId}
Web API を使用するようになったので、次のようにルートを個別に定義する必要があります。
RouteTable.Routes.MapHttpRoute(
name: "AddFishLength",
routeTemplate: "fish-length",
defaults: new
{
controller = "FishApi",
action = "AddFishLength"
});
RouteTable.Routes.MapHttpRoute(
name: "GetFishLength",
routeTemplate: "fish-length?start-date={startDate}&pondId={pondId}",
defaults: new
{
controller = "FishApi",
action = "GetFishLength"
});
?
ただし、routeTemplate で許可されていないため、2 番目のルートは機能しません。
URL 形式を次のように変更することはできますがfish-length/{startDate}/{pondId}
、サービスを公開するにはあまり良い方法ではありません。
これを行うより良い方法はありますか?また、以前は同じ URL に対して POST と GET を行っていたため、ルーティング メソッドでこれが引き続き許可されていることを確認する必要があります。上記が機能したと仮定すると、どのように正しくルーティングされるかはまだわかりません。