4

当我运行一个 .NET Core Web API 项目时,我得到一个如下所示的 URL:http://localhost:5000/api/...

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

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

4

2 回答 2

8

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

[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。你可以在这里阅读更多。

混合路由 MVC 应用程序可以混合使用常规路由和属性路由。为浏览器提供 HTML 页面的控制器使用常规路由,为提供 REST API 的控制器使用属性路由是典型的做法。

于 2017-02-23T20:02:55.753 回答
4

您可以安装microsoft.aspnetcore.http.abstractionsnuget 包并在您的方法中使用UsePathBaseExtensions扩展方法,如下所示:IApplicationBuilderStartup.Configure

app.UsePathBase("/api/v1");
于 2020-01-30T20:53:10.757 回答