spring boot集成swagger2

2019年4月4日15:00:30html

 

pom添加更新web

    <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>

 

添加註冊配置文件spring

@EnableSwagger2
@Configuration
public class SwaggerConfig {

    // 是否開啓swagger,正式環境通常是須要關閉的
    @Value(value = "${swagger.enabled}")
    Boolean swaggerEnabled;

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(swaggerEnabled).select()
                .apis(RequestHandlerSelectors.basePackage("com.zs.logistics")).paths(PathSelectors.any()).build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("API文檔").version("1.0.0").build();
    }
}

application.properties配置api

swagger.enabled=true

線上的時候關閉app

RequestHandlerSelectors.basePackage("com.zs.logistics")

這個是你須要掃描的包的路徑,根據需求配置ide

 

注意這個光這個是不夠的,還要配置swagger-uiui

 

@Configuration
public class AppConfig extends WebMvcConfigurationSupport {
    @Autowired
    private AdminLoginInterceptor adminLoginInterceptor;

    public static String[] adminAllowUrl = { "/api/admin/login" };

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        registry.addResourceHandler("/templates/**").addResourceLocations("classpath:/templates/");
        registry.addResourceHandler("/upload/**").addResourceLocations("classpath:/upload/");

        registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");

        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");

    }

 

接口裏面使用swagger註解spa

@Api(tags = "管理員操做相關接口")
@RestController
public class LoginApiController {
    @Autowired
    private AdminService adminService;

    @ApiOperation(value = "管理員登陸接口")
    @PostMapping("/api/admin/login")
    public Map<String, Object> admin(@RequestParam(value = "name", defaultValue = "") String name,
            @RequestParam(value = "password", defaultValue = "") String password) {

        try {
return ResponseHelper.responseMenu(200, "成功", admin, adminPermission);
        } catch (Exception e) {
//            return ResponseHelper.responseMessage(201, e.getMessage() + e.toString());
            return ResponseHelper.responseMessage(201, e.getMessage());
        }

    }

}

 

訪問localhost:8080/swagger-ui.htmlcode

其餘經常使用註解htm

- @Api()用於類; 
表示標識這個類是swagger的資源 
- @ApiOperation()用於方法; 
表示一個http請求的操做 
- @ApiParam()用於方法,參數,字段說明; 
表示對參數的添加元數據(說明或是否必填等) 
- @ApiModel()用於類 
表示對類進行說明,用於參數用實體類接收 
- @ApiModelProperty()用於方法,字段 
表示對model屬性的說明或者數據操做更改 
- @ApiIgnore()用於類,方法,方法參數 
表示這個方法或者類被忽略 
- @ApiImplicitParam() 用於方法 
表示單獨的請求參數 
- @ApiImplicitParams() 用於方法,包含多個 @ApiImplicitParam

詳細使用參考

https://www.cnblogs.com/fengli9998/p/7921601.html

 

當你須要廢棄某個方法的時候,加上

@Deprecated

swagger2生成的文檔也會是灰色

相關文章
相關標籤/搜索