centos

centos swagger集成方案

小樊
46
2025-10-05 04:36:46
栏目: 智能运维

CentOS环境下Swagger集成方案汇总

在CentOS系统中集成Swagger(现多称为OpenAPI Specification,OAS),主要围绕环境准备框架集成文档生成与管理三个核心环节展开。以下是具体实施方案,覆盖Java Spring Boot、Node.js等常见技术栈:

一、基础环境准备

无论选择哪种集成方式,需先安装以下基础工具:

二、Java Spring Boot项目集成(常用方案)

适用于基于Spring Boot开发的Java应用,通过注解自动生成API文档。

1. 添加Swagger依赖

在项目的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>

2. 配置Swagger

创建Swagger配置类(如SwaggerConfig.java),启用Swagger并定义文档信息:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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.example.controller"))  // 指定Controller包路径
                .paths(PathSelectors.any())
                .build();
    }
}

3. 添加API注解

在Controller类或方法上使用Swagger注解,丰富文档内容:

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Api(tags = "用户管理API")  // 接口分类标签
public class UserController {
    @GetMapping("/users")
    @ApiOperation(value = "获取用户列表", notes = "返回所有用户的详细信息")
    public String getUsers() {
        return "用户列表数据";
    }
}

4. 启动应用并访问

启动Spring Boot应用后,通过以下URL访问Swagger UI:

http://<服务器IP>:8080/swagger-ui.html

即可看到自动生成的API文档,支持在线测试接口。

三、Node.js项目集成

适用于基于Express、Koa等框架的Node.js应用。

1. 安装Swagger工具

通过npm安装Swagger UI及生成器:

npm install -g swagger-ui-express swagger-jsdoc

2. 配置Swagger

创建Express应用并集成Swagger(如app.js):

const express = require('express');
const swaggerJsdoc = require('swagger-jsdoc');
const swaggerUi = require('swagger-ui-express');

const app = express();
const port = 3000;

// Swagger定义
const swaggerDefinition = {
    openapi: '3.0.0',
    info: {
        title: 'Node.js API文档',
        version: '1.0.0',
        description: '基于Express的API文档'
    },
    servers: [{ url: `http://localhost:${port}`, description: '开发环境' }]
};

// 生成Swagger文档
const options = {
    swaggerDefinition,
    apis: ['./routes/*.js']  // 指向API路由文件路径
};
const swaggerSpec = swaggerJsdoc(options);

// 挂载Swagger UI
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));

app.listen(port, () => {
    console.log(`Server running at http://localhost:${port}`);
});

3. 编写API注释

在路由文件(如routes/user.js)中添加Swagger注释:

/**
 * @swagger
 * /users:
 *   get:
 *     tags: [用户管理]
 *     summary: 获取用户列表
 *     description: 返回所有用户的详细信息
 *     responses:
 *       200:
 *         description: 请求成功
 *         content:
 *           application/json:
 *             schema:
 *               type: array
 *               items:
 *                 $ref: '#/components/schemas/User'
 */
router.get('/users', (req, res) => {
    res.json([{ id: 1, name: '张三' }, { id: 2, name: '李四' }]);
});

4. 启动应用并访问

启动Node.js应用后,通过以下URL访问Swagger UI:

http://<服务器IP>:3000/api-docs

四、Docker快速部署

适用于希望快速启动Swagger UI的场景,无需安装本地依赖。

1. 安装Docker

通过yum安装Docker并启动:

sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker

2. 拉取Swagger UI镜像

从Docker Hub拉取官方Swagger UI镜像:

docker pull swaggerapi/swagger-ui

3. 运行容器

将Swagger UI映射到宿主机80端口,指定API文档URL(如Swagger Hub或本地文件):

docker run -d -p 80:8080 --name swagger-ui -e SWAGGER_FILE=https://petstore.swagger.io/v2/swagger.json swaggerapi/swagger-ui

若使用本地API文档(如swagger.yaml),可将文件挂载到容器中:

docker run -d -p 80:8080 -v /path/to/swagger.yaml:/app/swagger.yaml --name swagger-ui swaggerapi/swagger-ui

4. 访问Swagger UI

通过浏览器访问http://<服务器IP>,即可查看Swagger UI界面。

五、注意事项

以上方案覆盖了CentOS环境下Swagger的主要集成场景,可根据项目技术栈选择合适的方式。

0
看了该问题的人还看了