spring boot 2.x and 1.x 请使用 springdoc-openapi v1.7.0
依赖
// swagger3
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-api:2.2.0'
配置文件
# 配置 swagger 文档的访问路径,访问地址:http://127.0.0.1:8080/swagger-ui/index.html
springdoc.swagger-ui.path=/swagger-ui/index.html
配置类
@Configuration
@EnableWebMvc // @EnableWebFlux 支持 WebFlux
class SwaggerConfig {
@Bean
fun springShopOpenAPI(): OpenAPI {
return OpenAPI()
.info(
Info().title("丝袜哥接口文档")
.description("暂无描述")
.version("v1.0 测试版")
.license(License().name("Apache 2.0").url("http://www.apache.org/licenses/LICENSE-2.0"))
)
.externalDocs(
ExternalDocumentation()
.description("SpringDoc")
.url("http://springdoc.org")
)
}
}
6.使用示例
@RestController
@RequestMapping("/api/users")
@Tag(name = "用户管理", description = "用于管理用户信息")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
@Operation(summary = "根据ID获取用户信息", description = "根据用户ID查询用户的详细信息")
@ApiResponse(responseCode = "200", description = "成功获取用户信息")
@ApiResponse(responseCode = "404", description = "未找到对应用户")
public ResponseEntity<User> getUserById(@PathVariable("id") Long id) {
User user = userService.getUserById(id);
if (user != null) {
return ResponseEntity.ok(user);
} else {
return ResponseEntity.notFound().build();
}
}
@PostMapping
@Operation(summary = "创建用户", description = "创建新用户")
@ApiResponse(responseCode = "201", description = "成功创建用户")
public ResponseEntity<User> createUser(@RequestBody CreateUserRequest request) {
User user = userService.createUser(request);
return ResponseEntity.status(HttpStatus.CREATED).body(user);
}
@PutMapping("/{id}")
@Operation(summary = "更新用户信息", description = "根据用户ID更新用户的信息")
@ApiResponse(responseCode = "200", description = "成功更新用户信息")
@ApiResponse(responseCode = "404", description = "未找到对应用户")
public ResponseEntity<User> updateUser(@PathVariable("id") Long id, @RequestBody UpdateUserRequest request) {
User user = userService.updateUser(id, request);
if (user != null) {
return ResponseEntity.ok(user);
} else {
return ResponseEntity.notFound().build();
}
}
@DeleteMapping("/{id}")
@Operation(summary = "删除用户", description = "根据用户ID删除用户")
@ApiResponse(responseCode = "204", description = "成功删除用户")
@ApiResponse(responseCode = "404", description = "未找到对应用户")
public ResponseEntity<Void> deleteUser(@PathVariable("id") Long id) {
boolean deleted = userService.deleteUser(id);
if (deleted) {
return ResponseEntity.noContent().build();
} else {
return ResponseEntity.notFound().build();
}
}
}