我有一个通过使用Jersey开发的REST API,我们通过swagger-ui记录REST API。不幸的是,我们没有从第1天开始对API进行版本控制。我们现在正在尝试向API添加版本控制。
我正在采取的第一步是尝试更新动态生成的swagger(html)页面显示的API版本。我已经将调用流程一直跟踪到swagger-ui.js文件,但我无法弄清楚如何在动态生成的页面底部更改显示的API版本。
当前显示在底部的默认值是'API VERSION:1.0.0'。
我已经阅读了一些关于ServiceStack here的内容,但不幸的是我正在处理的代码库没有使用任何类型的内容。
有人可以请我指出我需要更改/更新的位置/更新以更新显示的API版本号吗?
答案 0 :(得分:2)
Swagger UI底部显示的API版本来自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自动配置过程中扫描的任何类:
注释可以在Swagger自动配置过程中扫描的任何类上,即它不必在JAX-RS API类上,但可以在标记/配置接口上
您可以在此处找到一些示例:https://github.com/swagger-api/swagger-samples/tree/master/java。有些人正在使用Jersey并设置API版本。
答案 1 :(得分:1)
您可以添加一个Bootstrap servlet来设置Swagger配置bean的参数,如下所述 -
https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-2.X-Project-Setup-1.5
答案 2 :(得分:1)
这很直接 -
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();
}
}