美文网首页
Swagger2 增加Api通用参数;2018-01-19

Swagger2 增加Api通用参数;2018-01-19

作者: HolloWord | 来源:发表于2018-01-19 14:20 被阅读305次

    对于现在前后端分离的架构,在调用API的时候,都需要使用token或者access-token的参数在header中,那么在使用Swagger2的时候想在所有的API文档的前部添加公共的需要传入的参数,研究了半天,终于成功了,分享一下;

    1. swagger2的依赖:
      <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.6.1</version>
      </dependency>
      <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.6.1</version>
      </dependency>
      2.创建config配置类,用于配置swagger的相关信息:
      2.1 使用的注解:
      @Configuration -- 标志配置类;
      @EnableSwagger2 -- 启用swagger2;
      --- 我看在网上,还有使用@EnableWebMvc的注解,但我没有用,也是可以滴;
      2.3: Docket对象:该对象用来配置文档显示的主要的信息;比如:扫描的controller包;以及该组API文档显示的名称;该组需要过滤的接口;公共参数的设置;上配置:


      注释.png

      本来想上传代码,但是这个文本编译器显示的不是很理想,就直接上图片吧;
      公共参数部分,有的大牛会在Docket外面创建一个static静态的代码块存放,并初始化。但是我试了以后会报空指针异常,所以就放在Docket里面;defaultValue()占位符可以不用要;
      Docket里面重要的是select()后面的apis(Predicates.or(RequestHandlerSelectors.basePackage(""))) --该选择用于定义该Docket扫描的controller包,就可以将不同的controller分组使用,比如App的controller api 或者 后台的api,通过groupName()分组命名;Paths(),里面定义该分组需要过滤的API,可以使用正则匹配,也可以选择any(),所有的。如果在这里包配置错了或者路径匹配错了,启动的时候就会报空指针异常,导致项目启动失败;通过globalOperationParameters()选项,将通用的参数集合添加进来,就可以了启用了;
      对应的ui上的页面上,上图:


      页面.png
      3:ApiInfo对象:
      该对象很简单,就是定义左上角的信息,比如该文档的名称,对应的描述,以及作者的信息等;
      4 这次踩得坑比较多的就是空指针异常,以及页面显示不出来,甚至接口显示不出来的状况。这些错误,不出意外的话都是配置错误。还有就是static静态代码块,建议不要使用静态代码块初始化,否则会报错;

    相关文章

      网友评论

          本文标题:Swagger2 增加Api通用参数;2018-01-19

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