swagger - Swashbuckle 版本控制选择默认的 API 版本出现在 Swagger
问题描述
我正在对我的 API 进行版本控制,我想在 Swagger 中显示最新的 API 版本作为默认值。比如我的API有2个版本,当有人选择展示Swagger时,最先出现的版本是V1.0。用户必须手动选择要显示的最新版本。
在下图中,我们可以看到应用程序启动时向用户显示的默认版本是 V1.0。
我想知道是否可以默认向用户显示最新的 API 版本。
谢谢!
解决方案
首先,我在 Startup.cs 的 Configure 类中添加了 IApiVersionDescriptionProvider,如下所示:
之后,我不得不反转包含可用于 app.UseSwaggerUI() 中 api 版本的列表。
您在 Startup.cs Configure 方法中配置 Swagger UI 的顺序决定了下拉列表的顺序。
app.UseSwaggerUI(c =>
{
foreach (var description in apiVersionDescriptionProvider.ApiVersionDescriptions.Reverse())
{
// Create the Swagger endpoints for each version
c.SwaggerEndpoint($"/swagger/" +
$"LibraryOpenAPISpecification{description.GroupName}/swagger.json",
description.GroupName.ToUpperInvariant());
}
c.RoutePrefix = ""; // swagger UI at the root index.html
});
@Bob Ash 的以下回答非常有帮助 -我如何指定招摇的默认打开版本?
通过这样做,我现在成功地将 V2.0 显示为 api 的默认版本:
推荐阅读
- android - 如何在 Android 上获取日历提醒
- python - 在 Python 中使用 Tkinter 在弹出窗口上打开图像
- python-3.x - 如何让 zbar 检测深色背景的二维码?
- python - Python OpenCV 在播放时选择视频/流上的 ROI
- string - 根据值检查输入时出错
- pine-script - 回测时如何在代码中访问公共/自定义指标
- c++ - 如何使用 Howardhinnant 的 c++ 日期库格式化 UTC 时间字符串
- python - 散景“server.start”没有显示任何内容
- python - Django - 3 个模型之间的层次关系。帖子引用一个目标和目标引用一个类别
- javascript - .cshtml 中的数学运算