我一直在关注this example在API上实现版本控制,我正在使用标题版本控制。在使用示例交换useSwaggerUI代码后,我不再获得一个昂首阔步的UI:
当我通过以下调试时:
app.UseSwaggerUI(options =>
{
//options.DocumentTitle = "Web API Core";
//options.SwaggerEndpoint("/swagger/v1/swagger.json", "WebAPICore V1");
//options.SwaggerEndpoint("/swagger/v2/swagger.json", "WebAPICore V2");
//options.RoutePrefix = string.Empty;
foreach (var description in provider.ApiVersionDescriptions)
{
options.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant());
}
});
似乎SwaggerEndpoint调用将url格式化为与注释的url相同。我显然错过了一些东西,或者这已经发生了一些变化,我需要做一些不同的事情。有人能在这里提出建议吗?
[编辑 - 更多信息]当我现在运行它并看到描述的SwaggerUI时,我可以使用Postman命中端点并且标题版本控制工作。
找到了。在完成它的同时,我还使用其他网站来帮助解决我遇到的一些问题,结果证明:
options.DocInclusionPredicate((docName, description) => true);
在AddSwaggerGen方法中。摆脱它,我有Swagger ui回来。