我应该遵循WebApi路线惯例吗?

时间:2016-12-13 10:27:28

标签: asp.net-web-api routes

我应该遵循WebApi路线惯例吗?

我想将默认路由配置(api/{controller}/{id})更改为api/{controller}/{action}/{id}

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

可以在我的路线中添加{action}占位符吗?

默认WebApi路线的优缺点是什么?

1 个答案:

答案 0 :(得分:-1)

是的,您可以在路线中使用行动名称并使用它们。 首先,您必须将以下内容添加到 WebApiConfig.cs

routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);

请务必在默认路由之前添加它,否则它将无效。 然后在控制器方法中添加 ActionName 属性

public class ProductsController : ApiController
{
    [HttpGet]
    [ActionName("Thumbnail")]
    public HttpResponseMessage GetThumbnailImage(int id);
}

然后您的路线将是 / api / Products / Thumbnail

有关详细信息,请查看here

中的按操作名称路由

如果这有助于您,请务必将其标记为答案:)

通过使用自定义操作名称,您可以超越控制器中的HTTP谓词,并在API中提供自定义方法