私はWebAPIを使用して一連のサービスを公開しています。一部のルートで問題が発生しており、サポートが必要です。
デフォルトのルートを定義しました:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new {id = RouteParameter.Optional}
);
このルートを使用すると、「/ api /clients/」や「/api/ clients/4」などの通常のルートにアクセスできます。次のルート「api/clients / 4/profiles」および「api/clients / 4/validations」にヒットするGETが必要です。
私は成功せずに次のルートを試しました:
config.Routes.MapHttpRoute(
name: "ClientProfilesApi",
routeTemplate: "api/{controller}/{clientid}/profiles",
defaults: new { action = RouteParameter.Optional },
constraints: new { controller = "clients" }
);
config.Routes.MapHttpRoute(
name: "ClientValidationsApi",
routeTemplate: "api/{controller}/{clientid}/validations",
defaults: new { action = RouteParameter.Optional },
constraints: new { controller = "clients" }
);
また、次のように「ActionName」属性を使用してみました。
[HttpGet]
[ActionName("profiles")]
public IEnumerableResponseDto<ProfileLayoutDto> GetProfiles(Int64 clientId, [FromUri] IEnumerableRequestDto request)
{ .... }
[HttpGet]
[ActionName("profiles")]
public IEnumerableResponseDto<ValidationLayoutDto> GetValidations(Int64 clientId, [FromUri] IEnumerableRequestDto request)
{ .... }
私は何が欠けていますか?コントローラに複数のGETを設定することはできませんか?