在Debian系统上,首先安装运行微服务及Swagger所需的工具链:
sudo apt update && sudo apt upgrade -y
sudo apt install -y openjdk-11-jdk maven git
确保系统具备Java 11+运行环境(微服务常用版本)和Maven构建工具,为后续项目创建奠定基础。
使用Spring Initializr(在线工具)生成基础的Spring Boot项目:
Spring Web(构建RESTful API)、SpringFox Swagger(集成Swagger,可选但推荐)。进入项目根目录,编辑pom.xml文件,添加Swagger核心依赖(以springfox-boot-starter为例,兼容Spring Boot 3.x):
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
若使用Spring Boot 2.x,则改用以下依赖(需同步调整配置类):
<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>
保存文件后,执行mvn clean install下载依赖。
创建Swagger配置类(如SwaggerConfig.java),定义文档的扫描范围与UI展示信息:
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 // Spring Boot 3.x可省略(自动识别)
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();
}
}
此配置会扫描指定包下的所有控制器,生成对应的API文档。
在控制器类与方法上添加Swagger注解,明确API的功能、参数、返回值等信息(提升文档可读性与规范性):
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/users")
@Api(tags = "用户管理模块", description = "提供用户的增删改查操作") // 模块级描述
public class UserController {
@GetMapping("/{id}")
@ApiOperation(value = "获取用户详情", notes = "根据用户ID查询用户信息", response = User.class)
public User getUserById(
@ApiParam(value = "用户ID", required = true, example = "1") @PathVariable Long id) {
// 实际业务逻辑(如调用Service层)
return new User(id, "张三", "zhangsan@example.com");
}
@PostMapping
@ApiOperation(value = "创建用户", notes = "接收用户信息并保存到数据库")
public String createUser(@RequestBody User user) {
// 实际业务逻辑
return "用户创建成功:" + user.getName();
}
}
// 辅助类(用于示例)
class User {
private Long id;
private String name;
private String email;
// 构造方法、Getter/Setter省略
}
常用注解说明:
@Api:描述控制器模块的功能;@ApiOperation:描述接口的具体功能、返回值;@ApiParam:描述接口参数的用途、是否必填、示例值;@ApiResponse:描述接口的响应状态与说明(可选)。在项目根目录下执行以下命令,启动Spring Boot微服务:
mvn spring-boot:run
服务启动后(默认端口8080),在浏览器中访问Swagger UI:
http://localhost:8080/swagger-ui/
(若使用Spring Boot 2.x,URL为http://localhost:8080/swagger-ui.html)
此时可看到所有通过注解描述的API接口,点击接口名称可查看详细参数、返回值,并支持在线测试(输入参数后点击“Execute”)。
/v3/api-docs接口),实现统一文档入口;tags或@ApiVersion(自定义注解)标记API版本(如v1、v2),配合网关实现版本路由;@ApiIgnore忽略敏感接口,或结合Spring Security实现接口鉴权(如JWT),防止未授权访问文档。通过以上步骤,可在Debian环境中利用Swagger实现微服务的API文档管理、接口测试、团队协作等功能,提升微服务治理的效率与规范性。