大家使用swagger往往会和JWT一起使用,而一般使用jwt会将token放在head里,这样我们在使用swagger测试的时候并不方便,因为跨域问题它默认不能自定义head参数。然后自己去网上找,发现国内大多数的都是写一个Filter接口,然后添加到配置。这样极大的破坏了程序的完整性。想想这相当于维护两套代码。我们只是需要一个简单的小功能,国外大多是修改Swagger的index页面:

  1. window.swaggerUi = new SwaggerUi({
  2. discoveryUrl: "http://pathtomyservice.com/resources",
  3. headers: { "testheader" : "123" },
  4. apiKey: "123",
  5. apiKeyName: "Api-Key",
  6. dom_id:"swagger-ui-container",
  7. supportHeaderParams: true,
  8. supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
  9. onComplete: function(swaggerApi, swaggerUi){
  10. if(console) {
  11. console.log("Loaded SwaggerUI");
  12. console.log(swaggerApi);
  13. console.log(swaggerUi);
  14. }
  15. $('pre code').each(function(i, e) {hljs.highlightBlock(e)});
  16. },
  17. onFailure: function(data) {
  18. if(console) {
  19. console.log("Unable to Load SwaggerUI");
  20. console.log(data);
  21. }
  22. },
  23. docExpansion: "none"
  24. });

supportHeaderParams默认为false,而我用的是swagger2,不需要配置静态的那些东西,所以我在SwaggerConfig添加了几行代码:

  1. @EnableSwagger2
  2. @EnableWebMvc
  3. @ComponentScan("com.g.web")
  4. public class SwaggerConfig {
  5. @Bean
  6. public Docket api(){
  7. ParameterBuilder tokenPar = new ParameterBuilder();
  8. List<Parameter> pars = new ArrayList<Parameter>();
  9. tokenPar.name("x-access-token").description("令牌").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
  10. pars.add(tokenPar.build());
  11. return new Docket(DocumentationType.SWAGGER_2)
  12. .select()
  13. .apis(RequestHandlerSelectors.any())
  14. .paths(PathSelectors.regex("/api/.*"))
  15. .build()
  16. .globalOperationParameters(pars)
  17. .apiInfo(apiInfo());
  18. }
  19. private ApiInfo apiInfo() {
  20. return new ApiInfoBuilder()
  21. .title("后台接口文档与测试")
  22. .description("这是一个给app端人员调用server端接口的测试文档与平台")
  23. .version("1.0.0")
  24. .termsOfServiceUrl("http://terms-of-services.url")
  25. //.license("LICENSE")
  26. //.licenseUrl("http://url-to-license.com")
  27. .build();
  28. }
  29. }

前四行代码是添加head参数的,前台效果是这样的:

原文:http://blog.csdn.net/u014044812/article/details/71473226

【转】Swagger2 添加HTTP head参数的更多相关文章

  1. Swagger2 添加HTTP head参数

    大家使用swagger往往会和JWT一起使用,而一般使用jwt会将token放在head里,这样我们在使用swagger测试的时候并不方便,因为跨域问题它默认不能自定义head参数.然后自己去网上找, ...

  2. Swagger2 添加HTTP head参数,解决用户是token信息保留

    转:http://blog.csdn.net/u014044812/article/details/71473226 大家使用swagger往往会和JWT一起使用,而一般使用jwt会将token放在h ...

  3. 给go程序添加命令行参数

    操作系统: CentOS 6.9_x64 go语言版本: 1.8.3 问题描述 需要应用程序根据不同的配置文件访问不同的服务器,希望程序启动时可以指定配置文件. 解决方案 package main i ...

  4. 向现有URL末尾添加查询字符串参数

    向现有URL末尾添加查询字符串参数 xhr.open("get", "example.php?name1=value1&name2=value2", t ...

  5. js 为url字符串添加、修改参数

    //为url字符串添加.修改参数 String.prototype.EditUrlParam = function (paramName, replaceWith) { var url = this; ...

  6. pytest动态添加命令行参数并获取(钩子函数:pytest_addoption)

    考虑场景: 我们的自动化用例需要支持在不同测试环境运行,有时候在dev环境运行,有时候在test环境运行: 有时候需要根据某个参数不同的参数值,执行不同的业务逻辑: 上面的场景我们都可以通过" ...

  7. 获取和添加URL地址栏参数

    URL地址(添加参数:传参) js写法: //1.window.location.href var a ="1018802,8" var b ="1" wind ...

  8. Retrofit,Okhttp对每个Request统一动态添加header和参数(五)

    文/Tamic 地址:http://blog.csdn.net/sk719887916/article/details/52189602 Header How to Add header to Eve ...

  9. 存储过程使用 in 添加多个参数的情况处理方式【转】

    原文连接:http://www.jb51.net/article/41472.htm -->情景 ① 通过刚才的SQL递归方式,我们已经可以将一个组织机构和其全部下级单位查询出来:假设每个组织机 ...

随机推荐

  1. BZOJ 2938: [Poi2000]病毒 [AC自动机 拓扑排序]

    2938: [Poi2000]病毒 题意:判断是否存在无限长的不含模式串的字符串.只有01. 建出套路DP的转移图,判断有环就行了 练习一下拓扑排序 #include <iostream> ...

  2. Windows上MongoDB的安装

    下载 下载MongoDB,自然是在他的官网下载相应系统的版本了,我下载的是Windows的安装包. 安装 傻瓜式安装,不多说.(默认安装在C盘的.) 启动 mongodb的数据存在一个叫data 文件 ...

  3. Ubuntu的Java环境变量

    新架构要上线了,这两天开始准备分析一下了,今天是直接进到JAVA_HOME的lib目录执行的java -cp sa-jdi.jar sun.jvm.hotspot.HSDB,然后报了个错: 这是哪来的 ...

  4. Quartz动态改变任务时间

    基于quartz-2.2 的动态任务调度 Quartz是一个完全由java编写的开源作业调度框架. 调度器 Quartz框架的核心是调度器.调度器负责管理Quartz应用运行时环境.调度器不是靠自己做 ...

  5. Spring_Spring与AOP_AspectJ基于注解的AOP实现

    一.AspectJ.Spring与AOP的关系 AspectJ是一个面向切面的框架,它扩展了Java语言.AspectJ定义了AOP语法,所以它有一个专门的编译器用来生成遵守Java字节编码规范的Cl ...

  6. python入门学习笔记(三)

    10.函数 求绝对值的函数 abs(x) 也可以在交互式命令行通过 help(abs) 查看abs函数的帮助信息.调用 abs 函数:>>> abs(100)100>>& ...

  7. Angular CurrencyPipe货币管道关于人民币符号¥的问题

    做项目(Angular项目)时经常需要处理金额的显示,需要在金额前面加上¥,但又不想用简单在前面加"¥"这么不优雅的方式,于是想到了CurrencyPipe.毕竟,Currency ...

  8. shell脚本中 杀死可能成为僵尸进程的方法

    交互式 Bash Shell 获取进程 pid 在已知进程名(name)的前提下,交互式 Shell 获取进程 pid 有很多种方法,典型的通过 grep 获取 pid 的方法为(这里添加 -v gr ...

  9. (转载,但不知道谁原创)获取SPRING 代理对象的真实实例,可以反射私有方法,便于测试

    /** * 获取 目标对象 * @param proxy 代理对象 * @return * @throws Exception */ public static Object getTarget(Ob ...

  10. Redis笔记4-持久化方案

    一:快照模式 默认redis是会以快照的形式将数据持久化到磁盘的(一个二进制文件,dump.rdb,这个文件名字可以指定),在配置文件中的格式是:save N M表示在N秒之内,redis至少发生M次 ...