在Ubuntu上集成Swagger前,需确保系统具备Node.js/npm(用于前端工具链)和Java(部分Java项目依赖)环境:
安装Node.js和npm(适用于Node.js/Express项目):
sudo apt update sudo apt install -y nodejs npm 验证安装:node -v(显示版本号)、npm -v(显示版本号)。
安装Java(适用于Spring Boot项目):
sudo apt update sudo apt install -y openjdk-11-jdk 验证安装:java -version(显示Java版本信息)。
若项目基于Node.js+Express框架,可通过swagger-jsdoc(生成文档)和swagger-ui-express(集成UI)快速实现:
安装Swagger工具(全局或项目本地):
sudo npm install -g swagger-jsdoc swagger-ui-express # 全局安装(可选) cd your-project-directory npm install --save swagger-jsdoc swagger-ui-express # 项目本地安装(推荐) 创建Swagger配置文件:
在项目根目录新建swagger.yaml(或swagger.json),定义API基本信息、路径、模型等。示例如下:
swagger: '2.0' info: title: Sample API description: A demo API for Swagger integration version: '1.0.0' host: localhost:3000 basePath: /api schemes: - http paths: /users: get: summary: Get all users responses: '200': description: A list of users schema: type: array items: $ref: '#/definitions/User' definitions: User: type: object properties: id: type: integer format: int64 name: type: string 集成Swagger UI到Express应用:
修改Express主文件(如app.js),添加以下代码:
const express = require('express'); const swaggerUi = require('swagger-ui-express'); const swaggerDocument = require('./swagger.yaml'); // 引入配置文件 const app = express(); app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument)); // 挂载Swagger UI // 其他路由(如用户接口) app.get('/api/users', (req, res) => { res.json([{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }]); }); const PORT = process.env.PORT || 3000; app.listen(PORT, () => console.log(`Server running on port ${PORT}`)); 运行并访问Swagger UI:
node app.js 打开浏览器访问http://localhost:3000/api-docs,即可看到Swagger UI界面,包含API文档和测试功能。
若项目基于Spring Boot框架,可通过Springfox Swagger依赖自动生成文档:
添加Swagger依赖:
在pom.xml(Maven)中添加以下依赖:
<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> 配置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.demo.controller")) // 替换为你的控制器包路径 .paths(PathSelectors.any()) .build(); } } 运行并访问Swagger UI:
使用Maven启动Spring Boot应用:
./mvnw spring-boot:run 打开浏览器访问http://localhost:8080/swagger-ui.html,即可查看自动生成的API文档。
若不想手动安装,可使用Docker快速部署Swagger UI:
安装Docker:
sudo apt update sudo apt install -y docker.io sudo systemctl start docker sudo systemctl enable docker 运行Swagger UI容器:
docker pull swaggerapi/swagger-ui docker run -d -p 8080:8080 --name swagger-ui swaggerapi/swagger-ui 访问http://localhost:8080,通过界面输入Swagger规范文件URL(如http://your-server-ip:3000/api-docs)即可查看文档。
以上步骤覆盖了Ubuntu下Swagger集成的常见场景,可根据项目技术栈选择对应方案。集成后,可通过Swagger UI直观查看API文档、测试接口,提升开发效率。