zoukankan      html  css  js  c++  java
  • springboot添加swagger2组件

    swagger2是一个可以构建和调试RESTful API文档的组件,利用swagger2的注解可以快速的在项目中构建Api文档,并且提供了测试API的功能

    1,引入依赖

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.7.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.7.0</version>
    </dependency>

    2,配置swagger2

    @Configuration
    @EnableSwagger2
    public class Swagger2Configration {
        
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("org.my.security"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("Spring Boot添加Swagger2组件")
                    .description("Spring Boot添加Swagger2组件")
                    .version("1.0")
                    .build();
        }
    }

    @configration 标识这是一个配置类

    @EnableSwagger2开启swagger2

    apis表示swagger需要扫描的包
    PathSelectors.any()表示路径选择器匹配所有路径

    apiInfo() swagger页面上的一些展示信息

    3,swagger常用注释

    @Api() 用于类;表示标识这个类是swagger的资源 
    tags–表示说明 
    value–也是说明,可以使用tags替代 
    @ApiOperation() 用于方法;表示一个http请求的操作 
    value用于方法描述 
    notes用于提示内容 


    @ApiParam() 用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等) 
    name–参数名 
    value–参数说明 
    required–是否必填

    @ApiModel()用于类 ;表示对类进行说明,用于参数用实体类接收 
    value–表示对象名 

    @ApiModelProperty()用于方法,字段; 表示对model属性的说明或者数据操作更改 
    value–字段说明 
    name–重写属性名字 
    dataType–重写属性类型 
    required–是否必填 
    example–举例说明 
    hidden–隐藏

    @ApiImplicitParam() 用于方法 
    表示单独的请求参数

    @ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam 
    name–参数ming 
    value–参数说明 
    dataType–数据类型 
    paramType–参数类型 
    example–举例说明
    @ApiIgnore 作用于方法上,使用这个注解swagger将忽略这个接口

    4,打个样

    @RestController
    @RequestMapping("user")
    @Api("用户信息接口")
    public class UserController {
        
        @GetMapping("/{id}")
        @ApiOperation(value="查询用户", notes="根据id来查询用户")
        @ApiImplicitParam(name = "id", value = "用户ID")
        @JsonView(User.UserSimplaView.class)
        public User getUser(@PathVariable String id){
            User user = new User();
            user.setUserName("陈明羽");
            user.setPassWord("root明羽");
            return user;
        }
    
        @GetMapping("/userDetail/{id}")
        @ApiOperation(value="查询用户详情", notes="根据id来查询用户详情信息")
        @ApiImplicitParam(name = "id", value = "用户ID")
        @JsonView(User.UserDetailView.class)
        public User getUserDetail(@PathVariable String id){
            User user = new User();
            user.setUserName("陈明羽");
            user.setPassWord("root明羽");
            return user;
        }
        
    }

    //model对象
    @ApiModel(value="用户对象")
    public class User {

      @ApiModelProperty(value="用户名",name="userName")
      private String userName;
      @ApiModelProperty(value="密码",name="passWord")
      private String passWord;

      //get(),set()

    }

    5,swagger文档效果

    访问 http://localhost:8080/swagger-ui.html

    点击单个接口

              

     6,测试接口

      以上图/user/userDetail接口为例

      在Parameters那块对应字段的value给填上你想测试的值,然后点 try in out!

  • 相关阅读:
    739. Daily Temperatures
    556. Next Greater Element III
    1078. Occurrences After Bigram
    1053. Previous Permutation With One Swap
    565. Array Nesting
    1052. Grumpy Bookstore Owner
    1051. Height Checker
    数据库入门及SQL基本语法
    ISCSI的概念
    配置一个IP SAN 存储服务器
  • 原文地址:https://www.cnblogs.com/cmyxn/p/8028134.html
Copyright © 2011-2022 走看看