SpringBoot整合Swagger2

SpringBoot整合Swagger2

1.创建SpringBoot项目
2.pom文件中导入相关的依赖

<!--swagger文档功能-->
        <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>

3.开发者提供一个Docket的Bean

package com.ytzl.springboot.config;

import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * 作者: fyq
 * 时间: 2020/8/21 0021 15:47
 * 描述: swagger文档注释
 */
@Component
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .pathMapping("/")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.ytzl.springboot.controller"))//相关控制器路径
                .paths(PathSelectors.any())
                .build().apiInfo(new ApiInfoBuilder()
                        .title("SpringBoot整合Swagger")
                        .description("详细信息")
                        .version("9.0")
                        .contact(new Contact("SpringBoot整合Swagger","blog.csdn.net","aaa@gmail.com"))
                        .license("The Apache License")
                        .licenseUrl("http://www.baidu.com")
                        .build());
    }
}

启动项目,输入http://localhost:8080/swagger-ui.html,若出现以下界面,则表示配置成功
在这里插入图片描述
4.改造User实体类和UserController控制器

  1. @Api注解可以用来标记当前Controller的功能(类的注释)。
  2. @ApiOperation注解用来标记一个方法的作用(方法的注释)。
  3. @ApiImplicitParam注解用来描述一个参数,可以配置参数的中文含义,也可以给参数设置默认值,这样在接口测试的时候可以避免手动输入(字段的注释)。
  4. @ApiImplicitParams是@ApiImplicitParam的复数,@ApiImplicitParam需要放在@ApiImplicitParams中(多个字段的注释)。
  5. 需要注意的是,@ApiImplicitParam注解中虽然可以指定参数是必填的,但是却不能代替@RequestParam(required= true),前者的必填只是在Swagger2框架内必填,抛弃了Swagger2,这个限制就没用了,所以假如开发者需要指定一个参数必填,@RequestParam(required = true)注解还是不能省略。

改造UserController控制器

package com.ytzl.springboot.controller;

import com.ytzl.springboot.entity.User;
import com.ytzl.springboot.service.UserService;
import com.ytzl.springboot.utils.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

/**
 * 作者: fyq
 * 时间: 2020/8/20 0020 10:05
 * 描述: 控制登录
 */
@RestController
@Slf4j
@Api(tags = "登录管理相关接口")
public class LoginController {

    @Resource
    private UserService userService;

    @GetMapping("/user/login")
    @ApiOperation("登录接口")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "username", value = "用户名"),
            @ApiImplicitParam(name = "password", value = "用户密码")
    })
    public R login(@RequestParam("username")String userName, @RequestParam("password")String password, HttpSession session) throws Exception {
        log.info(userName);
        log.info(password);
        User user=userService.userLogin(userName,password);
        if (user!=null){
            session.setAttribute("admin",userName);
            return R.success("index");
        }else {
            return R.success("login");
        }
    }

    @PostMapping("/hello")
    @ApiOperation("登录成功返回首页接口")
    public String returnPageIndex() {
        return "index.html";
    }
}

改造User实体类

package com.ytzl.springboot.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 用户表实体类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel
public class User implements Serializable {
    @ApiModelProperty(value = "用户id")
    private Integer id;
    @ApiModelProperty(value = "登录名")
    private String userCode;
    @ApiModelProperty(value = "用户名")
    private String userName;
    @ApiModelProperty(value = "用户密码")
    private String userPassword;
    @ApiModelProperty(value = "用户性别")
    private Integer gender;
    @ApiModelProperty(value = "出生日期")
    private Date birthday;
    @ApiModelProperty(value = "手机号码")
    private String phone;
    @ApiModelProperty(value = "家庭住址")
    private String address;
    @ApiModelProperty(value = "用户角色")
    private Integer userRole;
    @ApiModelProperty(value = "创建者")
    private Integer createdBy;
    @ApiModelProperty(value = "创建时间")
    private Date creationDate;
    @ApiModelProperty(value = "修改者")
    private Integer modifyBy;
    @ApiModelProperty(value = "修改时间")
    private Date modifyDate;
    @ApiModelProperty(value = "身份证路径")
    private String idPicPath;
    @ApiModelProperty(value = "工作证路径")
    private String workPicPath;
}


5.查看是否配置成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值