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

2018-01-19  本文已影响305人  HolloWord

对于现在前后端分离的架构,在调用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静态代码块,建议不要使用静态代码块初始化,否则会报错;
上一篇下一篇

猜你喜欢

热点阅读