ubuntu

ubuntu swagger版本选择指南

小樊
52
2025-07-15 09:33:20
栏目: 智能运维

在Ubuntu上选择和配置Swagger(现通常称为OpenAPI Generator)的版本,可以按照以下步骤进行:

安装Swagger

使用Snap包管理器

  1. 更新Snap包列表:
sudo snap refresh
  1. 安装Swagger UI:
sudo snap install swagger-ui
  1. 启动Swagger UI:
swagger

这将在默认浏览器中打开Swagger UI界面。

使用npm(Node.js包管理器)

  1. 安装Node.js和npm(如果尚未安装):
sudo apt update
sudo apt install nodejs npm
  1. 全局安装Swagger UI:
sudo npm install -g swagger-ui-express
  1. 创建一个简单的Express应用并集成Swagger UI:
mkdir swagger-demo
cd swagger-demo
npm init -y
npm install express --save

在项目根目录下创建一个名为 index.js 的文件,并添加以下内容:

const express = require('express');
const swaggerUi = require('swagger-ui-express');
const YAML = require('yamljs');
const app = express();

// 读取Swagger文档
const swaggerDocument = YAML.load('./swagger.yaml');

// 使用swagger-ui-express中间件
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});
  1. 创建Swagger文档文件 swagger.yaml 并添加你的API文档。

  2. 启动应用:

node index.js

这将在浏览器中打开Swagger UI界面,地址为 http://localhost:3000/api-docs

使用Docker

  1. 安装Docker(如果尚未安装):
sudo apt update
sudo apt install docker.io
  1. 拉取Swagger UI镜像:
docker pull swaggerapi/swagger-ui-express
  1. 运行Swagger UI容器:
docker run -p 8080:8080 -e SWAGGER_JSON=/app/swagger.json -v $(pwd):/app swaggerapi/swagger-ui

确保你的 swagger.json 文件位于当前目录中。

配置Swagger

为Spring Boot应用程序配置Swagger

  1. 添加Swagger依赖:

在你的Spring Boot项目的 pom.xml 文件中添加Swagger相关的依赖。例如:

<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger2</artifactId>
  <version>2.9.2</version>
</dependency>
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger-ui</artifactId>
  <version>2.9.2</version>
</dependency>
  1. 配置Swagger:

创建一个Java类来配置Swagger。例如,创建一个名为 SwaggerConfig.java 的文件:

import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.yourpackage")) // 替换为你的控制器包路径
                .paths(PathSelectors.any())
                .build();
    }
}
  1. 访问Swagger UI:

启动你的Spring Boot应用程序后,你可以通过浏览器访问Swagger UI界面。默认情况下,你可以通过以下URL访问:http://localhost:8080/swagger-ui.html

进行版本控制

  1. 建立API版本管理:

在代码中建立一个 ApiVersions.cs 文件,用来设置版本。例如:

public enum ApiVersions {
    V1,
    V2,
    V3
}
  1. 配置SwaggerGen:

Program.cs 文件中修改相应的内容,添加版本控制。例如:

builder.Services.AddSwaggerGen(options => {
    options.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "API标题", Description = "API描述" });
    options.SwaggerDoc("v2", new OpenApiInfo { Version = "v2", Title = "API标题", Description = "API描述" });
    options.SwaggerDoc("v3", new OpenApiInfo { Version = "v3", Title = "API标题", Description = "API描述" });
    foreach (string version in typeof(ApiVersions).GetEnumNames()) {
        options.DocInclusion(version, true);
    }
});
  1. 配置SwaggerUI:

Startup.cs 中对 UseSwaggerUI 进行相应修改:

if (app.Environment.IsDevelopment()) {
    app.UseSwagger();
    app.UseSwaggerUI(c => {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "API版本:v1");
        c.SwaggerEndpoint("/swagger/v2/swagger.json", "API版本:v2");
        c.SwaggerEndpoint("/swagger/v3/swagger.json", "API版本:v3");
    });
}
  1. 控制器版本控制:

在控制器文件里面添加版本控制特性:

[ApiExplorerSettings(IgnoreApi = false, GroupName = nameof(ApiVersions.V1))]
public class CompanyController : ControllerBase {
    // V1版本的控制器代码
}

通过以上步骤,可以在Ubuntu上实现Swagger的版本控制。

0
看了该问题的人还看了