swagger SpringBoot整合使用swagger2

本文档介绍了如何在SpringBoot项目中集成Swagger2,以方便接口文档的生成和测试。Swagger2能够自动生成RESTful接口文档,并允许在文档中直接进行接口测试。文章详细讲解了依赖引入、配置类创建以及Controller代码示例,读者通过启动项目并访问指定URL即可查看和测试API。此外,还提到了Swagger的注解使用,特别是当形参为对象且对象使用了@ApiModel注解时,Swagger会自动处理形参描述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Swagger2

在项目开发中,前后端都是通过接口文档进行沟通,而一个好的接口文档可以减少很多成本,但是在开发过程中,接口文档总是会出现各种的变化,例如,开始设计的文档不合理,或者甲方需求变更等,接口文档有变化就需要进行维护,而维护起来比较麻烦,很容易造成文档与代码不一致,所以我们可以使用swagger来让我们接口更规范,以及方标维护。

swagger是一个Redtful接口的文档自动生成,以及测试的软件(可以自动生成RestFul的接口文档以及对接口进行测试)

  1. 引入依赖

    <!--Swagger2 依赖-->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>
    
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-spring-web</artifactId>
        <version>2.9.2</version>
    </dependency>
    
  2. 编写Swagger2的配置类

    @SpringBootConfiguration
    @EnableSwagger2  // 开启swagger注解的使用
    public class SpringSwagger2 {
        @Bean
        public Docket createRestApi(){
            return new Docket(DocumentationType.SWAGGER_2).pathMapping("/")
                    // 配置请求控制器的包
                    .select().apis(RequestHandlerSelectors.basePackage("com.zhiyou.controller"))
                    // 配置PathSelectors的路径 这里是扫描所有
                    .paths(PathSelectors.any())
                    // 构建一个Api描述信息 以及标题
                    .build().apiInfo(new ApiInfoBuilder().title("Swagger接口文档")
                    // Api 的总体描述信息
                    .description("Swagger接口文档描述,接口说明")
    
                    // Api 业务的url
                    .termsOfServiceUrl("http://localhost:8080/")
                    // 总体的版本号
                    .version("1.0.0").build());
        }
    
    }
    
    controller代码(示例)
    @RestController
    // tags 子标题,description 子描述
    @Api(tags = "测试用户相关接口",description = "用户接口的测试")
    public class TestController {
        @PostMapping("add")
        // ApiOperation 描述方法
        @ApiOperation(value = "value添加用户")
        public String add(User user){
            System.out.println(user);
            return "增加成功";
        }
        @DeleteMapping("delete")
        @ApiImplicitParam(name = "id",value = "用户的ID",defaultValue = "66")
        @ApiOperation(value = "value根据ID删除用户",notes = "notes根据ID删除用户")
        public String delete(int id){
            return "删除成功";
        }
        @PutMapping("update")
        @ApiImplicitParams({
                @ApiImplicitParam(name = "id",value = "用户的ID",defaultValue = "66",required = true),
                @ApiImplicitParam(name = "sex",value = "用户的性别",defaultValue = "男"),
                @ApiImplicitParam(name = "name",value = "用户的姓名",defaultValue = "憨憨"),
                @ApiImplicitParam(name = "money",value = "用户的金额",defaultValue = "2.2"),
        })
        @ApiOperation(value = "value修改用户",notes = "notes修改用户")
        public String update(String name,String sex,int id,double money){
            return "增加成功";
        }
        @GetMapping("find")
        @ApiImplicitParam(name = "id",value = "用户的ID")
        @ApiOperation(value = "value根据ID查询用户",notes = "notes根据ID查询用户")
        public String find(int id){
            return "查询成功";
        }
        // 这个方法不产生Api文档
        @ApiIgnore
        @GetMapping("find2")
        public String find2(int id){
            return "查询成功";
        }
    }
    

最后启动项目访问 http://loclahost:8080/swagger-ui.html 即可访问到对应的API文档
在这里插入图片描述

在文档中可以对对应的接口进行相关的测试

在这里插入图片描述

Swagger的注解:

注解作用域用途
@Api类/接口描述类和接口的用处
@ApiImplicitParam方法描述方法的非对象形参
@ApiImplicitParams方法描述方法的非对象形参
@ApiOperation方法描述方法的用处
@ApiIgnore类/方法/形参忽略相关的接口文档
@ApiModel参数实体类设置实体类的描述
@ApiModelProperty实体类属性实体类属性的描述

注意点:如果controller中的形参是对象,并且这个对象的model类中使用了@ApiModel注解的话,那么这个方法可以不使用@ApiImplicitParam注解来标识形参,swagger会自动使用model类中的描述来描述形参。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值