修改API控制器路由,移除“API”;从控制器名称

本文关键字:控制器 API 移除 路由 修改 | 更新日期: 2023-09-27 18:04:47

我的User模型有两个控制器。一个是常规的MVC控制器,它处理视图并继承Controller。然后我有一个继承自ApiController的API控制器。它们的名字分别是UsersControllerUsersApiController。我希望从Api控制器的URL中删除"Api",这样我就可以输入:

www.mywebsite.com/api/Users

而不是:

www.mywebsite.com/api/UsersApi

包含一个冗余的"api"。

我试过将属性[Route("Users")][Route("api/Users")]应用到整个控制器,但都不起作用,它们似乎只是打破了它。我的WebApiConfig.cs有默认的路由配置。

我该怎么做?

修改API控制器路由,移除“API”;从控制器名称

你应该能够使用属性路由。

[RoutePrefix("api/users")]
public class UsersApiController : ApiController
{  
    [Route("")]
    public HttpResponseMessage Get() 
    { 
    }
}

你应该能够自定义每个动作方法

public class UsersApiController : ApiController
{  
    [Route("api/users")]
    public HttpResponseMessage Get() 
    { 
    }
}