• spring boot 集成 Swagger 接口文档


    1.添加依赖

    <!-- Swagger -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
    </dependency>

    2.在 Spring Boot 配置文件中添加配置参数

    swagger:
      title: API标题
      description: API描述
      version: 1.0
      terms-of-service-url: http://www.javastack.cn/
      base-package: cn.javastack.test.web
      contact:
        name: Javastack
        url: http://www.javastack.cn/
        email: admin@qq.cn

    3.创建配置类:

      

    @Getter
    @Setter
    @Configuration
    @EnableSwagger2
    @ConditionalOnClass(EnableSwagger2.class)
    @ConfigurationProperties(prefix = "swagger")
    public class SwaggerConfig {
    
        /**
         * API接口包路径
         */
        private String basePackage;
    
        /**
         * API页面标题
         */
        private String title;
    
        /**
         * API描述
         */
        private String description;
    
        /**
         * 服务条款地址
         */
        private String termsOfServiceUrl;
    
        /**
         * 版本号
         */
        private String version;
    
        /**
         * 联系人
         */
        private Contact contact;
    
        @Bean
        public Docket api() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage(basePackage))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title(title)
                    .description(description)
                    .termsOfServiceUrl(termsOfServiceUrl)
                    .version(version)
                    .contact(contact)
                    .build();
        }
    
    }

    Swagger 默认会根据配置的包,扫描所有接口并生成对应的 API 描述和参数信息,但这样不是很直观,需要对每个接口和参数进行自定义描述

    注解名称使用说明
    @Api 描述一个 API 类
    @ApiImplicitParam 描述一个请求参数
    @ApiImplicitParams 描述一组请求参数
    @ApiModel 描述一个返回的对象
    @ApiModelProperty 描述一个返回的对象参数
    @ApiOperation 描述一个 API 方法
    @ApiParam 描述一个方法的参数
    @ApiResponse 描述一个请求响应
    @ApiResponses 描述一组请求响应
    @Api(description = "登录接口")
    @RestController
    public class LoginController {
    
        @ApiOperation(value = "登录", httpMethod = "POST")
        @ApiImplicitParams({
                @ApiImplicitParam(name = "username", value = "用户名", dataType = "string", paramType = "query"),
                @ApiImplicitParam(name = "password", value = "密码", dataType = "string", paramType = "query")})
        @PostMapping(value = "/login")
        public Object login(@RequestParam("username") String username, @RequestParam("password") String password) {
    
            // ...
    
        }
    }

    访问:http://localhost:8080/swagger-ui.html,可以看到所有的 API 接口定义,也可以在上面发起接口测试

  • 相关阅读:
    典型用户及场景分析
    使用搜狗输入法个人感受
    第二期站立会议10
    寻找“水王”
    第二期站立会议9
    第二期站立会议8
    第二期站立会议7
    第二期站立会议6
    第二期站立会议5
    第二期站立会议4
  • 原文地址:https://www.cnblogs.com/qinxu/p/14202123.html
Copyright © 2020-2023  润新知