zoukankan      html  css  js  c++  java
  • springboot2.0+swagger集成

    场景:项目中添加Swagger配置,可以加速项目的开发,在快速开发项目中十分重要。

    1、pom.xml添加swagger

         <!--swagger -->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.8.0</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.8.0</version>
            </dependency>
    
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.16.20</version>
            </dependency>

    2、添加SwaggerConfig.java文件

    /*
     * (C) Copyright 2018 Siyue Holding Group.
     */
    package com.mycat.demo.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.builders.ParameterBuilder;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.schema.ModelRef;
    import springfox.documentation.service.ApiInfo;
    import springfox.documentation.service.Parameter;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    import java.util.ArrayList;
    import java.util.List;
    
    @Configuration
    @EnableSwagger2
    public class Swagger {
      @Bean
      public Docket createRestApi() {
        ParameterBuilder tokenPar = new ParameterBuilder();
        List<Parameter> pars = new ArrayList<>();
        tokenPar.name("token").description("令牌")
            .modelRef(new ModelRef("string")).parameterType("header").required(false).build();
        pars.add(tokenPar.build());
        return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.mycat.demo.controller")) #扫描的controller包
            .paths(PathSelectors.any())
            .build().globalOperationParameters(pars)  ;
      }
    
     /* @Bean
      public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.mycat.demo.controller"))
                .paths(PathSelectors.any())
                .build();
      }*/
    
      @SuppressWarnings("deprecation")
      private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
            .title("Mycat配置测试")
            .description("Mycat微服务 API 文档")
            .contact("Develop Team")
            .version("1.0")
            .build();
      }
    
    }

    3、在controller类中添加,@ApiOperation(nickname = "addMember",value="添加用户",httpMethod = "POST")

    @RequestMapping("/addMember")
    @ApiOperation(nickname = "addMember",value="添加用户",httpMethod = "POST")
    @ResponseBody
    public JSONObject addMember(HttpServletRequest request, HttpServletResponse response, @RequestBody Member member) {
    JSONObject jsonObject = new JSONObject();
    /* Member member = new Member();
    member.setName("yangwenjie345");
    member.setAge(20);*/
    int insertNum = memberService.insert(member);
    if(insertNum == 0){
    jsonObject.put("code", CodeEnum.ERROR_CREATE_FAIL.getValue());
    jsonObject.put("message",CodeEnum.ERROR_CREATE_FAIL.getMessage());
    return jsonObject;
    }
    //查询有结果
    jsonObject.put("code", CodeEnum.SUCCESS.getValue());
    jsonObject.put("message",CodeEnum.SUCCESS.getMessage());
    return jsonObject;
    }

    4、启动项目访问

    http://localhost:8080/swagger-ui.html

    demo的github地址:https://github.com/812406210/springboot2.0-swagger

    如有问题,可以留言!

  • 相关阅读:
    sql随笔
    fastadmin 后台管理 时间戳字段使用
    查询优化随笔
    Hbuilder连接苹果手机
    composer安装Laravel
    php取上个月月初和月末时间戳
    fastadmin 后台view data-source关联报500错误问题
    京东宙斯平台使用方法(accesstoken,appkey,appsecret参数和SDK的获取)
    STM32的USB速度,终于确定了传输极限,为以后的产品设计提供了数据。
    上位机用USB做虚拟串口,总算抓到一个纯代码的总结了,没有坑的完美解决。
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10342661.html
Copyright © 2011-2022 走看看