SpringBoot configuration custom Swagger2 interface document

1. Add maven dependency

        <!--Springboot集成Swagger2的依赖-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.6.1</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.6.1</version>
        </dependency>
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>1.8.9</version>
        </dependency>

2. Add Swagger2Config configuration file

@Configuration
public class Swagger2Config {
    
    
    @Bean
    public Docket createRestApi() {
    
    
        //扫描控制器中Swagger2的注解
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo()).select()
                .apis(RequestHandlerSelectors.basePackage("cn.jizi.controller"))//指定包
                .paths(PathSelectors.any())
                .build();
    }

    //API描述信息
    private ApiInfo apiInfo() {
    
    
        return new ApiInfoBuilder()
                .title("springboot利用swagger构建api文档")
                .description("简单优雅的restfun风格")
                .termsOfServiceUrl("")
                .version("1.0")
                .build();
    }
}

3. Describe the interface

@Controller
@RequestMapping("/sel")
public class MenuController extends BaseConstructor {
    
    
    @Autowired
    private MenuService menuService;

    //跳转到登录页面
    @ApiOperation(value = "跳转页面")
    @GetMapping("toLogin")
    public String toLogin(){
    
    
        return "view/login";
    }

    @ApiOperation(value = "登录",notes = "查询是否存在这个用户")
    @GetMapping("login")
    public String login(Model model, HttpServletRequest request,String loginname,String pwd){
    
    

        //第一步:建立subject
        Subject subject = SecurityUtils.getSubject();
        //第二步:封装token  凭证
        UsernamePasswordToken token = new UsernamePasswordToken(loginname, pwd);
        //第三步:登陆
        try {
    
    
            //只要能通过认证就能通过了
            subject.login(token);
            SysUser users=menuService.loginname(loginname);
            //把user放进session
            request.getSession().setAttribute("user", users);
            model.addAttribute("loginname",users.getRealname());
            model.addAttribute("id",users.getUserid());
            //把yonghu放进session
            request.getSession().setAttribute("yonghu", users.getRealname());
            return "view/index";//跳转首页
        } catch (UnknownAccountException e) {
    
    
            //用户为空或不存在
            model.addAttribute("msg", "不存在这样的用户!");
            return "view/login";
        } catch (IncorrectCredentialsException e) {
    
    
            model.addAttribute("msg", "密码输入不对!");
            return "view/login";
        }
    }
}

Operation result:
Insert picture description here
method name: common annotation

@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解忽略这个API
@ApiError :发生错误返回的信息
@ApiImplicitParam:一个请求参数
@ApiImplicitParams:多个请求参数

4. Add comments

@EnableSwagger2    
@EnableSwaggerBootstrapUI
@SpringBootApplication
public class HospitalApplication {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(HospitalApplication.class, args);
    }

}

Guess you like

Origin blog.csdn.net/yang13676084606/article/details/110392694