如何在Spring Boot中配置Swagger

在Spring Boot中配置Swagger可以帮助你轻松生成API文档并提供交互式API界面。以下是详细的步骤来配置Swagger。
1. 添加依赖

首先,在你的pom.xml中添加Swagger的依赖。常用的Swagger实现是springfox-swagger-ui。

xml


    io.springfox
    springfox-boot-starter
    3.0.0

2. 启用Swagger

在你的Spring Boot应用的主类或任意配置类上添加@EnableSwagger2注解(在Springfox 3.x中已默认启用)。

java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

3. 配置Swagger

你可以创建一个Swagger配置类来自定义Swagger的设置:

java

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
public class SwaggerConfig {
    
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example")) // 替换为你的包名
                .paths(PathSelectors.any())
                .build();
    }
}

4. 访问Swagger UI

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

bash

http://localhost:8080/swagger-ui/

5. 自定义API信息

你可以进一步自定义API信息,如标题、描述和版本等:

java

import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;

@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.example"))
            .paths(PathSelectors.any())
            .build()
            .apiInfo(apiDetails());
}

private ApiInfo apiDetails() {
    return new ApiInfo(
            "My API",
            "API description",
            "1.0",
            "Free to use",
            new Contact("Your Name", "website.com", "email@example.com"),
            "API License",
            "API License URL",
            Collections.emptyList()
    );
}

6. 保护Swagger

如果你的应用需要安全控制,可以使用Spring Security配置保护Swagger接口。例如,允许访问Swagger的所有路径。

java

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/swagger-ui/**", "/v2/api-docs", "/swagger-resources/**").permitAll()
                .anyRequest().authenticated();
    }
}

总结

以上步骤展示了如何在Spring Boot中配置Swagger。你可以通过Swagger UI轻松查看和测试你的API。

请使用浏览器的分享功能分享到微信等