• 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();
        }
    }


  • 相关阅读:
    多线程中,上锁的理解
    sql server 2008 联机丛书
    序列化是线程安全的么
    对象化下的编程——字段
    Dic实现工厂模式
    design principle:java 回调与委派/委托机制(转)
    风筝数据结构学习笔记(2)后序遍历二叉树(非递归)
    风筝数据结构学习笔记(1)利用链式存储结构和递归构建二叉树
    吕震宇老师《设计模式系列》
    吕震宇老师《设计模式随笔系列》
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/12186438.html
Copyright © 2020-2023  润新知