更改Asp.Net核心中URL的"/ api"部分

Dav*_*man 4 .net core kestrel asp.net-core

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

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

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

提前致谢!

Woo*_*oot 7

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

[Route("api/[controller]")]
public class ValuesController : Controller
{
Run Code Online (Sandbox Code Playgroud)

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

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

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

虽然我自己不使用它,但它并不完全是MS推荐用于Web Api的.你可以在这里阅读更多.

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