当我运行.net核心web api项目时,我得到一个如下所示的网址:http://localhost:5000/api/ ...
如何将网址的/ api /部分更改为其他内容?即 - http://localhost:5000/myservice/ ......
我使用Kestrel作为我的网络主机。
提前致谢!
答案 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");