gpt4 book ai didi

asp.net-core - ASP.NET Core 在启动时解析 url?

转载 作者:行者123 更新时间:2023-12-02 20:00:39 25 4
gpt4 key购买 nike

我希望能够注册某些考虑资源实际 url 的 url。具体来说:我的 Web API 文档的 Swagger 端点。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseMvc();

app.UseSwagger();
app.UseSwaggerUi(c =>
{
c.SwaggerEndpoint($"/swagger/v1/swagger.json", "API documentation");
//c.SwaggerEndpoint($"/TheGreatestWebAPI/swagger/v1/swagger.json", "API documentation");
});
}

在我的开发环境中,我将在 http://localhost:5000 上托管 Web PI ,在这种情况下,Swagger 希望在此处与其端点对话:

http://localhost:5000/swagger/v1/swagger.json

在生产或登台环境中,Web API 将作为 IIS 中的 Web 应用程序托管在 https://test.contoso.com/TheGreatestWebAPI 中,并且 swagger 想要与之对话这个:

https://test.contoso.com/TheGreatestWebAPI/swagger/v1/swagger.json

...因此后者注释掉了端点注册。

我想做的是使用这样的东西:

c.SwaggerEndpoint($"~/swagger/v1/swagger.json", "API documentation");

任何使用过 ASP.NET Web 表单 Page.ResolveUrl() 的人都应该熟悉这一点,据我所知,相同的功能应该可以通过 UrlHelper.Content( )。但是,该函数需要 UrlHelper 类的实例,并且相关构造函数需要 ActionContext 实例。

我不知道如何在这种情况下正确实例化UrlHelper(Startup.Configure()中的UseSwaggerUI()) .

-S

最佳答案

该方法的文档表明该路径可以是完全限定的或相对于页面的。

就我而言,只需删除路径的第一部分就足够了:

c.SwaggerEndpoint("v1/swagger.json", "API documentation");

关于asp.net-core - ASP.NET Core 在启动时解析 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42155190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com