spring boot基础知识 —— spring boot 集成 swagger2

码云地址:https://gitee.com/hjc2/springboot.git

需要添加的依赖如下:

<dependencies>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
   </dependency>

   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <!--<scope>test</scope>-->
      <!--<exclusions>-->
         <!--<exclusion>-->
            <!--<groupId>org.junit.vintage</groupId>-->
            <!--<artifactId>junit-vintage-engine</artifactId>-->
         <!--</exclusion>-->
      <!--</exclusions>-->
   </dependency>

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

 

先介绍几个注解:

@EnableSwagger2    开启swagger2
@Api(value = "测试相关的接口")  表示controller的作用
@ApiOperation(value = "首次访问接口")  作用在方法上,表示方法的作用
@ApiImplicitParams({@ApiImplicitParam(name = "id", value = "id", defaultValue = "1", required = true)})

传入的参数

如果传入的参数是实体,那么实体上应该有以下几个注解:

@ApiModel  实体表示
@ApiModelProperty(value = "书籍的id编号")  具体参数

下面开始说明如何集成:

首先需要一个swagger的配置,返回一个Doctet,具体代码如下:

@Configuration
// 开启 swagger2
@EnableSwagger2
public class SwaggerConfig {
    // 提供一个 Docket的bean
    @Bean
    public Docket createRestApi() {
        Docket docket = new Docket(DocumentationType.SWAGGER_2);
        docket.pathMapping("/").select().
                apis(RequestHandlerSelectors.basePackage("com.dream.controller")).
                paths(PathSelectors.any()).build().
                apiInfo(new ApiInfoBuilder().title("SpringBoot整合Swagger").
                        description("SpringBoot整合Swagger,详细信息......").
                        version("1.0").contact(new Contact("name", "blog.csdn.net", "aaa@gmail.com")).
                        license("The Apache License").licenseUrl("http://www.baidu.com").build());
        return docket;
    }
}

 

配置文件:

server.port=8081

然后运行工程,输入地址:http://localhost:8081/swagger-ui.html,出现下面这个界面表示整合成功

然后需要的就是写一些controller,具体代码如下:

@RestController
@RequestMapping(value = "/book")
// api是用来标记controller的功能
@Api(value = "测试相关的接口")
public class IndexController {
    // ApiOperation标记一个方法
    @ApiOperation(value = "首次访问接口")
    @RequestMapping(value = "/index",method = RequestMethod.GET)
    // 传入的参数
    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "id", defaultValue = "1", required = true)})
    public String index(int id) {
        return "hello index\t" + id;
    }

    @ApiOperation(value = "书籍接口")
    @RequestMapping(value = "/book")
    @ApiImplicitParams({@ApiImplicitParam(name = "BookEntity")})
    public String hi(BookEntity bookEntity) {
        System.out.println(bookEntity);
        return bookEntity.toString();
    }
}

 

实体代码如下:

// 书籍实体
@ApiModel
public class BookEntity {
    @ApiModelProperty(value = "书籍的id编号")
    private String bookId;
    @ApiModelProperty(value = "书籍的名称")
    private String bookName;

    public String getBookId() {
        return bookId;
    }

    public void setBookId(String bookId) {
        this.bookId = bookId;
    }

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }
}

 

打开地址会看到具体的参数:

 

 

{
    "swagger":"2.0",
    "info":{
        "description":"SpringBoot整合Swagger,详细信息......",
        "version":"1.0",
        "title":"SpringBoot整合Swagger",
        "contact":{
            "name":"name",
            "url":"blog.csdn.net",
            "email":"aaa@gmail.com"
        },
        "license":{
            "name":"The Apache License",
            "url":"http://www.baidu.com"
        }
    },
    "host":"localhost:8081",
    "basePath":"/",
    "tags":[
        {
            "name":"index-controller",
            "description":"Index Controller"
        }
    ],
    "paths":{
        "/book/book":{
            "get":{
                "tags":[
                    "index-controller"
                ],
                "summary":"书籍接口",
                "operationId":"hiUsingGET",
                "produces":[
                    "*/*"
                ],
                "parameters":[
                    {
                        "name":"BookEntity",
                        "required":false,
                        "schema":{
                            "type":"string"
                        }
                    },
                    {
                        "name":"bookId",
                        "in":"query",
                        "description":"书籍的id编号",
                        "required":false,
                        "type":"string"
                    },
                    {
                        "name":"bookName",
                        "in":"query",
                        "description":"书籍的名称",
                        "required":false,
                        "type":"string"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"string"
                        }
                    },
                    "401":{
                        "description":"Unauthorized"
                    },
                    "403":{
                        "description":"Forbidden"
                    },
                    "404":{
                        "description":"Not Found"
                    }
                },
                "deprecated":false
            },
            "head":{
                "tags":[
                    "index-controller"
                ],
                "summary":"书籍接口",
                "operationId":"hiUsingHEAD",
                "consumes":[
                    "application/json"
                ],
                "produces":[
                    "*/*"
                ],
                "parameters":[
                    {
                        "name":"BookEntity",
                        "required":false,
                        "schema":{
                            "type":"string"
                        }
                    },
                    {
                        "name":"bookId",
                        "in":"query",
                        "description":"书籍的id编号",
                        "required":false,
                        "type":"string"
                    },
                    {
                        "name":"bookName",
                        "in":"query",
                        "description":"书籍的名称",
                        "required":false,
                        "type":"string"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"string"
                        }
                    },
                    "204":{
                        "description":"No Content"
                    },
                    "401":{
                        "description":"Unauthorized"
                    },
                    "403":{
                        "description":"Forbidden"
                    }
                },
                "deprecated":false
            },
            "post":{
                "tags":[
                    "index-controller"
                ],
                "summary":"书籍接口",
                "operationId":"hiUsingPOST",
                "consumes":[
                    "application/json"
                ],
                "produces":[
                    "*/*"
                ],
                "parameters":[
                    {
                        "name":"BookEntity",
                        "required":false,
                        "schema":{
                            "type":"string"
                        }
                    },
                    {
                        "name":"bookId",
                        "in":"query",
                        "description":"书籍的id编号",
                        "required":false,
                        "type":"string"
                    },
                    {
                        "name":"bookName",
                        "in":"query",
                        "description":"书籍的名称",
                        "required":false,
                        "type":"string"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"string"
                        }
                    },
                    "201":{
                        "description":"Created"
                    },
                    "401":{
                        "description":"Unauthorized"
                    },
                    "403":{
                        "description":"Forbidden"
                    },
                    "404":{
                        "description":"Not Found"
                    }
                },
                "deprecated":false
            },
            "put":{
                "tags":[
                    "index-controller"
                ],
                "summary":"书籍接口",
                "operationId":"hiUsingPUT",
                "consumes":[
                    "application/json"
                ],
                "produces":[
                    "*/*"
                ],
                "parameters":[
                    {
                        "name":"BookEntity",
                        "required":false,
                        "schema":{
                            "type":"string"
                        }
                    },
                    {
                        "name":"bookId",
                        "in":"query",
                        "description":"书籍的id编号",
                        "required":false,
                        "type":"string"
                    },
                    {
                        "name":"bookName",
                        "in":"query",
                        "description":"书籍的名称",
                        "required":false,
                        "type":"string"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"string"
                        }
                    },
                    "201":{
                        "description":"Created"
                    },
                    "401":{
                        "description":"Unauthorized"
                    },
                    "403":{
                        "description":"Forbidden"
                    },
                    "404":{
                        "description":"Not Found"
                    }
                },
                "deprecated":false
            },
            "delete":{
                "tags":[
                    "index-controller"
                ],
                "summary":"书籍接口",
                "operationId":"hiUsingDELETE",
                "produces":[
                    "*/*"
                ],
                "parameters":[
                    {
                        "name":"BookEntity",
                        "required":false,
                        "schema":{
                            "type":"string"
                        }
                    },
                    {
                        "name":"bookId",
                        "in":"query",
                        "description":"书籍的id编号",
                        "required":false,
                        "type":"string"
                    },
                    {
                        "name":"bookName",
                        "in":"query",
                        "description":"书籍的名称",
                        "required":false,
                        "type":"string"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"string"
                        }
                    },
                    "204":{
                        "description":"No Content"
                    },
                    "401":{
                        "description":"Unauthorized"
                    },
                    "403":{
                        "description":"Forbidden"
                    }
                },
                "deprecated":false
            },
            "options":{
                "tags":[
                    "index-controller"
                ],
                "summary":"书籍接口",
                "operationId":"hiUsingOPTIONS",
                "consumes":[
                    "application/json"
                ],
                "produces":[
                    "*/*"
                ],
                "parameters":[
                    {
                        "name":"BookEntity",
                        "required":false,
                        "schema":{
                            "type":"string"
                        }
                    },
                    {
                        "name":"bookId",
                        "in":"query",
                        "description":"书籍的id编号",
                        "required":false,
                        "type":"string"
                    },
                    {
                        "name":"bookName",
                        "in":"query",
                        "description":"书籍的名称",
                        "required":false,
                        "type":"string"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"string"
                        }
                    },
                    "204":{
                        "description":"No Content"
                    },
                    "401":{
                        "description":"Unauthorized"
                    },
                    "403":{
                        "description":"Forbidden"
                    }
                },
                "deprecated":false
            },
            "patch":{
                "tags":[
                    "index-controller"
                ],
                "summary":"书籍接口",
                "operationId":"hiUsingPATCH",
                "consumes":[
                    "application/json"
                ],
                "produces":[
                    "*/*"
                ],
                "parameters":[
                    {
                        "name":"BookEntity",
                        "required":false,
                        "schema":{
                            "type":"string"
                        }
                    },
                    {
                        "name":"bookId",
                        "in":"query",
                        "description":"书籍的id编号",
                        "required":false,
                        "type":"string"
                    },
                    {
                        "name":"bookName",
                        "in":"query",
                        "description":"书籍的名称",
                        "required":false,
                        "type":"string"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"string"
                        }
                    },
                    "204":{
                        "description":"No Content"
                    },
                    "401":{
                        "description":"Unauthorized"
                    },
                    "403":{
                        "description":"Forbidden"
                    }
                },
                "deprecated":false
            }
        },
        "/book/index":{
            "get":{
                "tags":[
                    "index-controller"
                ],
                "summary":"首次访问接口",
                "operationId":"indexUsingGET",
                "produces":[
                    "*/*"
                ],
                "parameters":[
                    {
                        "name":"id",
                        "in":"query",
                        "description":"id",
                        "required":true,
                        "type":"string",
                        "default":"1"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"string"
                        }
                    },
                    "401":{
                        "description":"Unauthorized"
                    },
                    "403":{
                        "description":"Forbidden"
                    },
                    "404":{
                        "description":"Not Found"
                    }
                },
                "deprecated":false
            },
            "head":{
                "tags":[
                    "index-controller"
                ],
                "summary":"首次访问接口",
                "operationId":"indexUsingHEAD",
                "consumes":[
                    "application/json"
                ],
                "produces":[
                    "*/*"
                ],
                "parameters":[
                    {
                        "name":"id",
                        "in":"query",
                        "description":"id",
                        "required":true,
                        "type":"string",
                        "default":"1"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"string"
                        }
                    },
                    "204":{
                        "description":"No Content"
                    },
                    "401":{
                        "description":"Unauthorized"
                    },
                    "403":{
                        "description":"Forbidden"
                    }
                },
                "deprecated":false
            },
            "post":{
                "tags":[
                    "index-controller"
                ],
                "summary":"首次访问接口",
                "operationId":"indexUsingPOST",
                "consumes":[
                    "application/json"
                ],
                "produces":[
                    "*/*"
                ],
                "parameters":[
                    {
                        "name":"id",
                        "in":"query",
                        "description":"id",
                        "required":true,
                        "type":"string",
                        "default":"1"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"string"
                        }
                    },
                    "201":{
                        "description":"Created"
                    },
                    "401":{
                        "description":"Unauthorized"
                    },
                    "403":{
                        "description":"Forbidden"
                    },
                    "404":{
                        "description":"Not Found"
                    }
                },
                "deprecated":false
            },
            "put":{
                "tags":[
                    "index-controller"
                ],
                "summary":"首次访问接口",
                "operationId":"indexUsingPUT",
                "consumes":[
                    "application/json"
                ],
                "produces":[
                    "*/*"
                ],
                "parameters":[
                    {
                        "name":"id",
                        "in":"query",
                        "description":"id",
                        "required":true,
                        "type":"string",
                        "default":"1"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"string"
                        }
                    },
                    "201":{
                        "description":"Created"
                    },
                    "401":{
                        "description":"Unauthorized"
                    },
                    "403":{
                        "description":"Forbidden"
                    },
                    "404":{
                        "description":"Not Found"
                    }
                },
                "deprecated":false
            },
            "delete":{
                "tags":[
                    "index-controller"
                ],
                "summary":"首次访问接口",
                "operationId":"indexUsingDELETE",
                "produces":[
                    "*/*"
                ],
                "parameters":[
                    {
                        "name":"id",
                        "in":"query",
                        "description":"id",
                        "required":true,
                        "type":"string",
                        "default":"1"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"string"
                        }
                    },
                    "204":{
                        "description":"No Content"
                    },
                    "401":{
                        "description":"Unauthorized"
                    },
                    "403":{
                        "description":"Forbidden"
                    }
                },
                "deprecated":false
            },
            "options":{
                "tags":[
                    "index-controller"
                ],
                "summary":"首次访问接口",
                "operationId":"indexUsingOPTIONS",
                "consumes":[
                    "application/json"
                ],
                "produces":[
                    "*/*"
                ],
                "parameters":[
                    {
                        "name":"id",
                        "in":"query",
                        "description":"id",
                        "required":true,
                        "type":"string",
                        "default":"1"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"string"
                        }
                    },
                    "204":{
                        "description":"No Content"
                    },
                    "401":{
                        "description":"Unauthorized"
                    },
                    "403":{
                        "description":"Forbidden"
                    }
                },
                "deprecated":false
            },
            "patch":{
                "tags":[
                    "index-controller"
                ],
                "summary":"首次访问接口",
                "operationId":"indexUsingPATCH",
                "consumes":[
                    "application/json"
                ],
                "produces":[
                    "*/*"
                ],
                "parameters":[
                    {
                        "name":"id",
                        "in":"query",
                        "description":"id",
                        "required":true,
                        "type":"string",
                        "default":"1"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"OK",
                        "schema":{
                            "type":"string"
                        }
                    },
                    "204":{
                        "description":"No Content"
                    },
                    "401":{
                        "description":"Unauthorized"
                    },
                    "403":{
                        "description":"Forbidden"
                    }
                },
                "deprecated":false
            }
        }
    }
}

 

还可以在http://localhost:8081/swagger-ui.html 页面看到接口信息:

欢迎关注我的微信公众号,更多内容将在微信公众号中发布:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值