zoukankan      html  css  js  c++  java
  • spring boot (2) 配置swagger2核心配置 docket

    演示:

    官方自带的皮肤:

     

    换肤 :

     隐藏api 接口:

    使用 @ApiIgnore 

    例如:

    package com.imooc.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    import springfox.documentation.annotations.ApiIgnore;
    
    @ApiIgnore
    //@Controller
    @RestController
    public class Hello {
          @GetMapping("/hello111")
          public Object hello() {
              return "hello world1";
          }
    }

     演示;

     这里我们可以看到hello 接口被隐藏

    看完效果演示 ,现在我们开始配置swagger2;

     在项目的pom.ml 添加依赖:

    <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>1.6</version>
        </dependency>

    编写配置代码:

    package com.imooc.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.service.ApiInfo;
    import springfox.documentation.service.Contact;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    @Configuration
    @EnableSwagger2
    public class Swagger2 {
    
    //    http://localhost:8088/swagger-ui.html     原路径
    //    http://localhost:8088/doc.html     原路径
    
        // 配置swagger2核心配置 docket
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)  // 指定api类型为swagger2
                        .apiInfo(apiInfo())                 // 用于定义api文档汇总信息
                        .select()
                        .apis(RequestHandlerSelectors
                                .basePackage("com.imooc.controller"))   // 指定controller包
                        .paths(PathSelectors.any())         // 所有controller
                        .build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("电商平台接口api")        // 文档页标题
                    .contact(new Contact("zxw",
                            "https://www.zxw.com",
                            "abc@imooc.com"))        // 联系人信息
                    .description("专为天天吃货提供的api文档")  // 详细信息
                    .version("1.0.1")   // 文档版本号
                    .termsOfServiceUrl("https://www.zxw.com") // 网站地址
                    .build();
        }
    
    }

    EnableSwagger2 : 开启在线文档

    声明api 文档的属性 构建器 :

     private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("电商平台接口api")        // 文档页标题
                    .contact(new Contact("zxw",
                            "https://www.zxw.com",
                            "abc@imooc.com"))        // 联系人信息
                    .description("专为天天吃货提供的api文档")  // 详细信息
                    .version("1.0.1")   // 文档版本号
                    .termsOfServiceUrl("https://www.zxw.com") // 网站地址
                    .build();
        }

    Controller 使用示例:

    package com.imooc.controller;
    
    import com.imooc.pojo.Users;
    import com.imooc.pojo.bo.UserBO;
    import com.imooc.service.StuService;
    import com.imooc.service.UserService;
    import com.imooc.utils.CookieUtils;
    import com.imooc.utils.IMOOCJSONResult;
    import com.imooc.utils.JsonUtils;
    import com.imooc.utils.MD5Utils;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import org.apache.commons.lang3.StringUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.http.HttpStatus;
    import org.springframework.web.bind.annotation.*;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    @Api(value = "注册登录", tags = {"用于注册登录的相关接口"})
    @RestController
    @RequestMapping("passport")
    public class PassportController {
    
        @Autowired
        private UserService userService;
    
        @ApiOperation(value = "用户注册", notes = "用户注册", httpMethod = "POST")
        @PostMapping("/regist")
        public IMOOCJSONResult regist(@RequestBody UserBO userBO,
                                      HttpServletRequest request,
                                      HttpServletResponse response) {
    
            String username = userBO.getUsername();
            String password = userBO.getPassword();
            String confirmPwd = userBO.getConfirmPassword();
    
            // 0. 判断用户名和密码必须不为空
            if (StringUtils.isBlank(username) ||
                    StringUtils.isBlank(password) ||
                    StringUtils.isBlank(confirmPwd)) {
                return IMOOCJSONResult.errorMsg("用户名或密码不能为空");
            }
    
            // 1. 查询用户名是否存在
            boolean isExist = userService.queryUsernameIsExist(username);
            if (isExist) {
                return IMOOCJSONResult.errorMsg("用户名已经存在");
            }
    
            // 2. 密码长度不能少于6位
            if (password.length() < 6) {
                return IMOOCJSONResult.errorMsg("密码长度不能少于6");
            }
    
            // 3. 判断两次密码是否一致
            if (!password.equals(confirmPwd)) {
                return IMOOCJSONResult.errorMsg("两次密码输入不一致");
            }
    
            // 4. 实现注册
            Users userResult = userService.createUser(userBO);
            return IMOOCJSONResult.ok();
        }
    }


  • 相关阅读:
    XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Siberia
    BZOJ5177 : [Jsoi2013]贪心的导游
    BZOJ1482 : [Balkan2017]Cats
    BZOJ5207 : [Jsoi2017]隧道
    XVIII Open Cup named after E.V. Pankratiev. Ukrainian Grand Prix
    线性代数笔记28——复矩阵和快速傅立叶变换
    闲话复数(2)——欧拉公式
    线性代数笔记27——对称矩阵及正定性
    闲话复数(1) | 不现实的虚数 i 为什么虚?它长成什么样?
    资源下载 | 深度学习、机器学习、机器学习实战、统计学习方法、高等数学、线性代数
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/12186438.html
Copyright © 2011-2022 走看看