Skip to content

三、swagger

一、swagger3的使用

提示

springboot3使用swagger3

1、引入依赖

xml
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
    <version>4.1.0</version>
</dependency>

2、配置SwaggerConfig.java

java
@Configuration
@Slf4j
public class SwaggerConfig {
    /**
     * 生成swagger接口文档
     *
     * @return
     */
    @Bean
    public OpenAPI createOpenApi() {
        Contact contact = new Contact();
        contact.setUrl("https://hdq12.github.io/dqBlog/");
        contact.setName("hdq");
        contact.setEmail("167780695@qq.com");

        Info info = new Info().title("商城管理接口文档")
                .description("商城管理swagger-API管理")
                .version("0.0.1").contact(contact);

        OpenAPI openAPI = new OpenAPI().info(info);
        log.info("开始创建swagger接口文档");
        return openAPI;
    }
}

3、注册资源拦截器

java
@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
    /**
     * 注册资源拦截器
     * @param registry
     */
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        log.info("开始注册资源拦截器");
        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

4、配置数据模型

java
@Data
@Schema(name = "AdminLoginDTO", title = "管理员登录数据模型", description = "管理员登录时传递的数据模型")
public class AdminLoginDTO implements Serializable {

    @Schema(description = "用户名", requiredMode = Schema.RequiredMode.REQUIRED, example = "admin")
    private String username;

    @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "password123")
    private String password;
}

5、配置controller

java
@RestController
@RequestMapping("/admin")
@Tag(name = "管理员管理")
public class UserController {

    @PostMapping("/login")
    @Operation(summary = "登录")
    public Result login(@RequestBody AdminLoginDTO adminLoginDTO) {

        System.out.println(adminLoginDTO);
        return Result.success();

    }
}

6、访问

http://localhost:8080/doc.html