• spring boot集成swagger2


    2019年4月4日15:00:30

    pom添加更新

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

    添加注册配置文件

    @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配置

    swagger.enabled=true

    线上的时候关闭

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

    这个是你需要扫描的包的路径,根据需求配置

    注意这个光这个是不够的,还要配置swagger-ui

    @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注解

    @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.html

    其他常用注解

    - @Api()用于类; 
    表示标识这个类是swagger的资源 
    - @ApiOperation()用于方法; 
    表示一个http请求的操作 
    - @ApiParam()用于方法,参数,字段说明; 
    表示对参数的添加元数据(说明或是否必填等) 
    - @ApiModel()用于类 
    表示对类进行说明,用于参数用实体类接收 
    - @ApiModelProperty()用于方法,字段 
    表示对model属性的说明或者数据操作更改 
    - @ApiIgnore()用于类,方法,方法参数 
    表示这个方法或者类被忽略 
    - @ApiImplicitParam() 用于方法 
    表示单独的请求参数 
    - @ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam

    详细使用参考

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

    当你需要废弃某个方法的时候,加上

    @Deprecated

    swagger2生成的文档也会是灰色

  • 相关阅读:
    PAT 天梯赛 L1-002 【递归】
    HDU_2717_Catch That Cow
    Stock Exchange (最大上升子子串)
    Lorenzo Von Matterhorn(map的用法)
    Ignatius and the Princess IV (简单DP,排序)
    投掷硬币(概率dp)
    Find The Multiple (DFS递归)
    24 Game
    棋盘问题
    linux上的文件服务
  • 原文地址:https://www.cnblogs.com/zx-admin/p/10655004.html
Copyright © 2020-2023  润新知