Swagger UI 错误的 CURL 路径

问题描述 投票:0回答:1

我得到了这个 url

dev.internal/myapi/swagger/index.html
,我的 Swagger UI 在其中提供服务并工作,但每次我尝试请求时,为请求生成的curl都会尝试调用
dev.internal/get
而不是
dev.internal/myapi/get
。 我正在使用 dotnet 8

我尝试将

app.UseSwaggerUI();
更改为

app.UseSwaggerUI( c => 
{
c.RoutePrefix = "myapi/swagger"
c.SwaggerEndpoint("/myapi/swagger/v1/swagger.json", "My Cool API V1");
}

它不起作用,只是将访问它的链接从

dev.internal/myapi/swagger/index.html
更改为
dev.internal/myapi/myapi/swagger/index.html
,并且请求生成的url仍然失败。

我应该改变什么才能让它调用

myapi/get

c# .net asp.net-core swagger swagger-ui
1个回答
0
投票

如果你使用的是vs2022,可以修改

launchUrl
中的
launchSetting.json

        builder.Services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new OpenApiInfo { Title = "My Cool API", Version = "v1" });
        });
        ...
        var app = builder.Build();

        // Configure the HTTP request pipeline.
        if (app.Environment.IsDevelopment())
        {
            app.UseSwagger();
            app.UseSwaggerUI(c => {
                c.RoutePrefix = "myapi/swagger"; 
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My Cool API V1"); 
            });
        }
        ...

然后就可以正常打开swagger页面了。

如果你想要所有的api追加

/myapi
,最少的成本就是使用[Route("myapi/[controller]")]。

© www.soinside.com 2019 - 2024. All rights reserved.