更改" / api" Asp.Net核心网址的一部分

时间:2017-02-23 19:55:57

标签: .net asp.net-core core kestrel

当我运行.net核心web api项目时,我得到一个如下所示的网址:http://localhost:5000/api/ ...

如何将网址的/ api /部分更改为其他内容?即 - http://localhost:5000/myservice/ ......

我使用Kestrel作为我的网络主机。

提前致谢!

2 个答案:

答案 0 :(得分:7)

这取决于您如何设置项目。默认情况下,我认为它使用属性路由。在您的控制器中,您应该看到类似这样的内容

[Route("api/[controller]")]
public class ValuesController : Controller
{

[Route(" api / [controller]")]只需要更改为[Route(" myservice / [controller]")]

如果你想在全球范围内这样做,你可以这样做。

app.UseMvc(routes =>
{
   routes.MapRoute("default",  "myservice/{controller=values}/{action=get}/{id?}");
});

虽然我自己不会使用它,但它并不完全是MS推荐用于Web Api的。您可以阅读更多here

  

混合路由   MVC应用程序可以混合使用传统路由和属性路由。对于为浏览器提供HTML页面的控制器使用传统路由,为服务REST API的控制器使用属性路由,这是典型的。

答案 1 :(得分:2)

您可以只安装microsoft.aspnetcore.http.abstractions nuget软件包,并在UsePathBaseExtensions方法中对IApplicationBuilder使用Startup.Configure扩展方法,如下所示:

app.UsePathBase("/api/v1");