Swagger.json 显示但 UI 不显示
Swagger.json is displayed but the UI not
我有 ASP.Net 6.0 项目,我已按如下方式配置 Swagger:
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo {
Title = "MyApi",
Version = "v1"
});
c.CustomSchemaIds(x => x.FullName);
c.ResolveConflictingActions(x => x.First());
});
和:
app.UseStaticFiles();
app.UseSwagger();
app.UseSwaggerUI(c =>
{
#if DEBUG
c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyAPI");
#else
c.SwaggerEndpoint("/MyApp/swagger/v1/swagger.json", "MyAPI");
#endif
c.RoutePrefix = string.Empty;
});
swagger.json
正在从正确的端点提供服务。但是 UI 端点 returns 404 Not Found
.
显示 UI 的正确方法是什么?
经过测试,我觉得这可能是一个需要优化的选项。您的代码是正确的,但现在我们遇到了奇怪的行为。
于是我分析了,为什么c.RoutePrefix = string.Empty;
在VS2022启动时不生效?但是当我直接访问https://localhost:port
时,功能正常
这个好像和VS2022里面的设置有关,于是找了下面的设置,找到了Url的设置。
然后我删除了 swagger
值,问题就解决了。
我有 ASP.Net 6.0 项目,我已按如下方式配置 Swagger:
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo {
Title = "MyApi",
Version = "v1"
});
c.CustomSchemaIds(x => x.FullName);
c.ResolveConflictingActions(x => x.First());
});
和:
app.UseStaticFiles();
app.UseSwagger();
app.UseSwaggerUI(c =>
{
#if DEBUG
c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyAPI");
#else
c.SwaggerEndpoint("/MyApp/swagger/v1/swagger.json", "MyAPI");
#endif
c.RoutePrefix = string.Empty;
});
swagger.json
正在从正确的端点提供服务。但是 UI 端点 returns 404 Not Found
.
显示 UI 的正确方法是什么?
经过测试,我觉得这可能是一个需要优化的选项。您的代码是正确的,但现在我们遇到了奇怪的行为。
于是我分析了,为什么c.RoutePrefix = string.Empty;
在VS2022启动时不生效?但是当我直接访问https://localhost:port
时,功能正常
这个好像和VS2022里面的设置有关,于是找了下面的设置,找到了Url的设置。
然后我删除了 swagger
值,问题就解决了。