SpringBoot中使用Swagger2实时生成接口文档

本文介绍了如何在SpringBoot项目中集成Swagger2自动生成API文档,包括添加依赖、配置Swagger并创建测试接口,以及使用注解详细描述接口功能。通过实例演示了如何创建和使用Swagger UI进行接口调用验证。

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

我们在写项目的使用,可以声明出一个开发文档给别人测试使用,而swagger就可以帮助我们实现生成接口文档,让我们可以实现postman一样的调用接口,查看返回值等,而且可以自定义注释,这样更加直观的展示我们项目的接口使用。

SpringBoot+Swagger2

  • 概述:Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
  • 官网
  • 首先添加依赖: Swagger2和swagger ui
<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>
  • 书写配置类:AppSwaggerConfig
@Configuration //spring注解,自动注入到容器中
@EnableSwagger2 //开启swagger2自动生成api文档的功能
public class AppSwaggerConfig {
    @Bean("用户模块")
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("控制器包路径"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("系统平台接口文档")
                .description("提供用户模块的文档")
                .termsOfServiceUrl("https://blog.csdn.net/qq_43265564")
                .version("1.0")
                .build();
    }
}
  • 到这一步,我们就要开始想,我们需要提供哪些接口去生成文档呢?这里我们去controller中新建两个测试方法来生成测试文档。
  • controler中的代码如下:
@Api(tags = "第一个Swagger测试")
@RestController
public class HelloController {

    @ApiOperation("测试方法之hello")
    @ApiImplicitParams(value={
            @ApiImplicitParam(name="name",value="姓名",required = true),@ApiImplicitParam(name="age",value="年龄")
    })
    @GetMapping("/hello")
    public String hello(String name){
        return "OK"+name;
    }

    @ApiOperation("保存用户")
    @ApiImplicitParams(value={
            @ApiImplicitParam(name="name",value="姓名",required = true),@ApiImplicitParam(name="email",value="电子邮件")
    })
    @PostMapping("/user")
    public User save(String name, String email){
        User user  = new User();
        user.setName(name);
        user.setEmail(email);
        return user;
    }
}
  • 到这一步我们就可以把服务启动然后输入你配置好的端口号来访问:http://localhost:7000/swagger-ui.html,这里我配置的是7000端口。
  • 最终实现效果:
    在这里插入图片描述
    在这里插入图片描述
  • 文档已经写好了,我们怎么使用呢?也就是我们需要调用接口来看看我们写的接口是否达到我们的预期,点击一个接口,点击Try it out,就可以输入参数,然后点击Execute执行了。
    在这里插入图片描述
    在这里插入图片描述

总结

注解归纳

注解名称作用
@Api(tags = “XXXX”)这个是对控制器的解释说明,你可以自己注释其是什么服务的控制器
@ApiOperation(“XXX”)这个是对控制器中方法的注释,依赖帮助你对控制器中方法的解释,比如这个方法是原来注册用户的,你就可以写注册用户的控制器方法接口
@ApiImplicitParams用在请求的方法上,表示一组参数说明,比如你这个方法需要传入多个参数,你也可以声明这些参数是什么类型的,代表什么意思,使用value={}来存放下面的具体参数注解
@ApiImplicitParamvalue:参数的汉字说明、解释。name:是需要解释的参数名。required:参数是否必须传。paramType:参数放在哪个地方。 dataType:参数类型,默认String,其它值dataType=“Integer”。defaultValue:参数的默认值
@ApiResponses用在请求的方法上,表示一组响应
@ApiResponse用在@ApiResponses中,一般用于表达一个错误的响应信息。code:数字,例如400。message:信息,例如"请求参数没填好"。response:抛出异常的类
@ApiModel主要有两种用途:1.用于响应类上,表示一个返回响应数据的信息。2.入参实体:使用@RequestBody这样的场景
@ApiModelProperty用在属性上,描述响应类的属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值