我得到了这个 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
如果你使用的是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]")]。