当我运行一个 .NET Core Web API 项目时,我得到一个如下所示的 URL:http://localhost:5000/api/...
如何将 URL 的 /api/ 部分更改为其他内容?即 - http://localhost:5000/myservice/...
我使用 Kestrel 作为我的网络主机。
当我运行一个 .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。你可以在这里阅读更多。
混合路由 MVC 应用程序可以混合使用常规路由和属性路由。为浏览器提供 HTML 页面的控制器使用常规路由,为提供 REST API 的控制器使用属性路由是典型的做法。
您可以安装microsoft.aspnetcore.http.abstractions
nuget 包并在您的方法中使用UsePathBaseExtensions
扩展方法,如下所示:IApplicationBuilder
Startup.Configure
app.UsePathBase("/api/v1");