使用 Swagger UI 设置 Api 版本

Setting the Api Version with Swagger UI

我有一个通过使用 Jersey 开发的 REST API,我们通过 swagger-ui 记录了 REST API。不幸的是,我们并没有从第一天开始对 API 进行版本控制。我们现在正在尝试向 API 添加版本控制。

我要采取的第一步是尝试更新由动态生成的 swagger (html) 页面显示的 API 版本。我一直跟踪调用流程到 sw​​agger-ui.js 文件,但我不知道如何更改动态生成页面底部显示的 API 版本。

当前显示在底部的默认值是'API VERSION: 1.0.0'。

我读过一些关于 ServiceStack 的文章 here 但不幸的是,我正在处理的代码库没有使用任何此类内容。

谁能指点我 where/what 我需要 change/update 才能更新显示的 API 版本号?

API 显示在 Swagger 底部的版本 UI 来自 Swagger 文档。

这是一个 Swagger 文档示例:

{
    "swagger": "2.0",
    "info": {
        "description": "This is a sample server Petstore server.",
        "version": "1.0.0",
        "title": "Swagger Petstore",
    ...

"version": "1.0.0" 是默认值,但您可以使用 Swagger @Info 注释更改它:

@SwaggerDefinition(
    info = @Info(
        description = "This is a sample server Petstore server.",
        version = "1.0.1",
        title = "Swagger Petstore"

根据 Swagger Wiki page:

,可以将此文档添加到 Swagger 自动配置过程中扫描的任何 class

The annotation can be on any class scanned during the Swagger auto-configuration process, i.e. it does not have to be on a JAX-RS API class but could just be on a marker/config interface

您可以在此处找到一些样本:https://github.com/swagger-api/swagger-samples/tree/master/java。有些人正在使用 Jersey 并设置 API 版本。

您可以添加 Bootstrap servlet 来设置 Swagger 配置 bean 的参数,如此处所述 -

https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-2.X-Project-Setup-1.5

非常简单 -

1. Add a servlet to set the Swagger Bootstrap properties in your deployment descriptior file.
<servlet>
        <servlet-name>SwaggerBootstrap</servlet-name>
        <servlet-class>com.example.util.SwaggerBootstrap</servlet-class>
        <init-param>
            <description>URL Pattern Mapping</description>
            <param-name>paramName</param-name>
            <param-value>uri value</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>

2. Create a servlet and set the Bean properties as below --

public void init(ServletConfig servletConfig) 
{
        try {

            // Setting the BeanConfig for start-up page
            BeanConfig bean = new BeanConfig();
            bean.setScan(true);
            bean.setResourcePackage("com.example.util");
            bean.setBasePath("yourBasePath"));  
            bean.setVersion("1.0");
            bean.setTitle("title"));
            bean.setDescription("description");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }