1

http://localhost:5134/api/TechDisci/00026user に対して複数の TechDisciplines を返すWebAPI url( ) があります00026/TechDisci/はコントローラー名で、Getメソッドは JSON データを返します。

JSON データには、結果セットにプライマリ値とセカンダリ値があります。ユーザーは、このような URL を渡してこれprimaryをフィルタリングしたいと考えています。secondary

http://localhost:5134/api/TechDisci/00026/primaryhttp://localhost:5134/api/TechDisci/00026/secondary

私のJavaの人たちは、この種のURLのことをすることができます. WebAPIでsamethigを処理するには?

4

1 に答える 1

1

コントローラーのアクション (メソッド) 名として「プライマリ」と「セカンダリ」を使用できます。次に、新しいルートを追加する必要があります (クラス Application.WebApiConfig 内)。

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}/{action}"
);

または、「プライマリ」と「セカンダリ」が同じメソッドのパラメータである場合。次に、このルートを追加できます

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}/{priority}",
    defaults: new { priority = RouteParameter.Optional }
);

この場合、Get メソッドに 2 つのパラメーター (id、priority) を受け入れるオーバーロードを追加する必要があります。

どちらの場合も、一致する最初のルートであることを確認するために、メイン ルートの前にルートを追加します。

于 2013-10-17T23:36:54.257 に答える