前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot整合Swagger2

SpringBoot整合Swagger2

原创
作者头像
呆小鱼LQ
修改2020-12-23 17:56:55
6640
修改2020-12-23 17:56:55
举报
文章被收录于专栏:Redis学习专栏Redis学习专栏

Our-task介绍

本篇博客是我github上our-task:一个完整的清单管理系统的配套教程文档,这是SpringBoot+Vue开发的前后端分离清单管理工具,仿滴答清单。目前已部署在阿里云ECS上,可进行在线预览,随意使用(附详细教程),大家感兴趣的话,欢迎给个star!

阿里云预览地址

整合步骤

maven依赖

代码语言:txt
复制
<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>
    </dependency>
    <!--Swagger-UI API文档生产工具-->
    <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>
</dependencies>

User实体

新建User类,方便后续验证配置是否正确,其中

@ApiModelProperty用于方法,字段; 表示对model属性的说明或者数据操作更改。

代码语言:txt
复制
public class User{

    @ApiModelProperty(value = "用户id")
    Integer id;

    @ApiModelProperty(value = "用户姓名")
    String username;

    @ApiModelProperty(value = "用户密码")
    String password;

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

Swagger-UI配置类

大家只需要修改其中的basePackage("com.example.demo.controller"),把这个改为自己的controller层的包名就可以了,Swagger-UI就会扫描该包下所有的Controller,从而显示在前段界面上。

代码语言:txt
复制
@Configuration
@EnableSwagger2
public class Swagger2Config {
    @Bean
    public Docket createRestApi(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //为当前包下controller生成API文档
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("配置SwaggerUI")
                .description("Swagger-UI-Demo")
                .version("1.0")
                .build();
    }
}

UserController

代码语言:txt
复制
@RestController
@Api(value = "用户控制器", tags = {"用户操作"})
public class UserController {
    @GetMapping("/hello")
    @ApiOperation("打招呼")
    public String hello(){
        return "你好,我是小娜";
    }

    @PostMapping("/login")
    @ApiOperation("登录")
    public String login(@RequestBody @ApiParam("用户对象") User user){
        return "你好" + user.toString();
    }
}

注解含义说明

  • @Api:修饰整个类,描述Controller的作用
  • @ApiOperation:描述一个类的一个方法,或者说一个接口
  • @ApiParam:单个参数描述
  • @ApiModel:用对象来接收参数
  • @ApiProperty:用对象接收参数时,描述对象的一个字段
  • @ApiResponse:HTTP响应其中1个描述
  • @ApiResponses:HTTP响应整体描述
  • @ApiIgnore:使用该注解忽略这个API
  • @ApiError :发生错误返回的信息
  • @ApiImplicitParam:描述一个请求参数,可以配置参数的中文含义,还可以给参数设置默认值
  • @ApiImplicitParams:描述由多个 @ApiImplicitParam 注解的参数组成的请求参数列表
image-20201223094635645.png
image-20201223094635645.png

配套代码

写了这么多,还是担心大家出现问题解决不了,所以我把配套Demo放在github上了,大家有问题可以的话可以去下载运行看看。

Swagger-UI-Demo

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Our-task介绍
  • 整合步骤
    • maven依赖
      • User实体
        • Swagger-UI配置类
          • UserController
          • 注解含义说明
          • 配套代码
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档