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!

  • 相关阅读:
    VS2012配色方案
    ”Metro UI之磁贴(二)
    hdu 1068
    3.11 从多个表中返回丢失的数据
    腾讯马化腾:云服务的安全问题是我最忧虑的(通过云,180多人能挣了10亿美金的利润)
    王小川清华大学毕业典礼演讲:我也有过学渣经历(和时间做朋友,要和华军、天空这些下载站做合作推广)
    今天看到一个签名,有点意思
    DEP受保护的问题(尤其是Outlook)
    竹林蹊径-深入浅出Windows内核开发作者的博客
    Sublime和Codeblocks支持C++11
  • 原文地址:https://www.cnblogs.com/cmyxn/p/8028134.html
Copyright © 2011-2022 走看看