更改ASP.Net核心中url的“/api”部分

Change the "/api" part of the url in ASP.Net Core

当我 运行 一个 .NET Core Web API 项目时,我得到一个 URL 看起来像这样的:http://localhost:5000/api /...

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

我正在使用 Kestrel 作为我的虚拟主机。

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

[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.

Mixed Routing MVC applications can mix the use of conventional routing and attribute routing. It's typical to use conventional routes for controllers serving HTML pages for browsers, and attribute routing for controllers serving REST APIs.

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

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