美文网首页
springboot集成swagger

springboot集成swagger

作者: 走停2015_iOS开发 | 来源:发表于2021-06-09 17:25 被阅读0次

    Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。
    作用:

    1. 接口的文档在线自动生成。
    2. 功能测试。

    配置

    第一步:配置pom.xml

      <dependencies>
        ...
        <!-- swagger -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.5.0</version>
        </dependency>
        <!-- swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.5.0</version>
        </dependency>
      </dependencies>
    
    

    第二步:IDEA执行Reimport All Maven Projects
    第三步:使用注解来进行启动swagger

    package com.template.swagger;
    
    import springfox.documentation.service.Contact;
    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.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    /**
     * Created by bianxh on 2019/1/21.
     */
    @Configuration
    @EnableSwagger2
    public class SwaggerApp {
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    //为当前包路径
                    .apis(RequestHandlerSelectors.basePackage("com.template.controller"))
                    .paths(PathSelectors.any())
                    .build();
    //        return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).build();
        }
        //构建 api文档的详细信息函数,注意这里的注解引用的是哪个
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    //页面标题
                    .title("Spring Boot 使用 Swagger2 构建RESTful API")
                    //创建人
                    .contact(new Contact("Bryan", "http://blog.bianxh.top/", ""))
                    //版本号
                    .version("1.0")
                    //描述
                    .description("API 描述")
                    .build();
        }
    }
    
    

    第四步:配置Controller

    package com.template.controller;
    /**
     * @Description:
     * @Author: Bryan
     * @Date: 2018/12/29 18:15
     */
    @Api(description = "用户操作接口")
    @Controller("user")
    @RequestMapping("/user")
    public class UserController extends BaseController {
    //...
        @ApiOperation(value = "获取otp", notes="通过手机号获取OTP验证码")
        @ApiImplicitParam(name = "telephone", value = "电话号码", paramType = "query", required = true, dataType = "Integer")
        @RequestMapping(value = "getotp", method=RequestMethod.GET)
        @ResponseBody
        public CommonReturnType getOtp(@RequestParam(name = "telephone") String telphone) {
            //需要按照一定的规则生成OTP验证码
            Random random = new Random();
            int randomInt = random.nextInt(99999);
            randomInt += 10000;
            String otpCode = String.valueOf(randomInt);
    
            //将OTP验证码同对应用户的手机号关,使用httpsession的方式绑定他的手机号与OTPCode
            httpServletRequest.getSession().setAttribute(telphone,otpCode);
            //将OTP验证码通过短信通道发送给用户,省略
            System.out.println("telphone = " + telphone + "& otpCode = " + otpCode);
            OtpVo otpVo = new OtpVo();
            otpVo.setTelephone(telphone);
            otpVo.setOtpCode(otpCode);
            return CommonReturnType.create(otpVo);
        }
    //...
    }
    
    

    第五步:访问 http://localhost:8081/swagger-ui.html,可以看到如下效果

    image

    接下来测试一下接口:

    image
    修改UI
    • 导入依赖
            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>swagger-bootstrap-ui</artifactId>
                <version>1.9.6</version>
            </dependency>
    
    image.png

    参考链接:https://www.jianshu.com/p/be1e772b089a

    相关文章

      网友评论

          本文标题:springboot集成swagger

          本文链接:https://www.haomeiwen.com/subject/jmhosltx.html