美文网首页
springBoot与swagger整合

springBoot与swagger整合

作者: 亭台雨榭111 | 来源:发表于2018-05-17 11:24 被阅读0次

    Swagger是目前比较流行的文档生成工具,其具有一下优点:
    1.Swagger可以生成一个具有互动性的api控制台,开发者可以使用该平台来学习和理解api接口.
    2.Swagger可以生成客户端SDK代码用户各种不同平台的实现
    3.Swagger 文件可以在许多不同的平台上从代码注释中自动生成
    下面是springBoot与Swagger整合实例,别的不多说直接上代码:
    搭建项目的最终实例:


    image.png

    下面开始搭建(我们使用的maven进行代码管理):
    一.引入依赖到pom.xml中


    <!-- Swagger -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
    
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
    </dependency>
    

    二.生成Swagger配置类


    package com.example.demo.swaggerdemo;

    import com.google.common.base.Predicate;
    import org.springframework.boot.autoconfigure.web.BasicErrorController;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;

    import springfox.documentation.RequestHandler;
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.service.ApiInfo;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;

    /**

    • 整合Swagger

    • Created by Administrator on 2018/4/12.
      */
      @Configuration
      @EnableSwagger2 //启用Swagger
      public class SwaggerConfig {

      @Bean
      public Docket createRestApi() {
      Predicate<RequestHandler> predicate = new Predicate<RequestHandler>() {
      @Override
      public boolean apply(RequestHandler input) {
      Class<?> declaringClass = input.declaringClass();
      if (declaringClass == BasicErrorController.class)// 排除没有添加注解的类
      return false;
      if(declaringClass.isAnnotationPresent(RestController.class)) //添加@ApiOperation(value = "",notes = "")注解的类
      return true;
      if(input.isAnnotatedWith(ResponseBody.class)) // 添加@ApiOperation(value = "",notes = "")注解的方法
      return true;
      return false;
      }
      };
      return new Docket(DocumentationType.SWAGGER_2)
      .apiInfo(apiInfo())
      .useDefaultResponseMessages(false)
      .select()
      .apis(predicate)
      .build();
      }

      private ApiInfo apiInfo() {
      return new ApiInfoBuilder()
      .title("rj接口服务")//大标题
      .version("1.0")//版本
      .build();
      }
      }


    三.在类上面或者在方法上面添加注解:


    @RequestMapping(value = "/getUserInfo" ,method = RequestMethod.GET)
    @ResponseBody
    @ApiOperation(value = "测试接口",notes = "获取用户名称")
    public Map getUserInfo(String userId,String type){
    Map<String, Object> map = new HashMap<String,Object>();
    System.out.println(userId);
    System.out.println(type);
    String userName = myService.getUserName();
    logger.info("获取对应的用户name:{}",userName);
    map.put("name",userName);
    return map;
    }


    四.启动springBoot项目,访问swagger的控制页面


    访问页面的网址:
    http://localhost:8080/swagger-ui.html#


    到此就完成了springBoot和Swagger的集成,快点去试试吧!

    相关文章

      网友评论

          本文标题:springBoot与swagger整合

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