java swagger ui 添加header请求头参数的方法

我用到的swagger 主要有三款产品,swagger editor,swagger ui 和swagger codegen。

swagger editor:主要是一个本地客户端,用来自己添加api,自己来测试,相当于一个api的可视化测试工具和定义工具吧。

swagger ui:主要用户嵌入到项目中,将所有的接口生成一个可视化的页面,方便前后端联调

swagger codegen:主要用于通过swagger来自动生成代码

我用的swagger ui主要在java项目中。将所有的http接口提供一个可视化页面。供前端同学看到,联调非常方便,所有的接口一目了然。

但是在使用swagger ui的时候,我有一个新的需求,就是我所有的接口都必须授权才能访问,即每个接口都必须添加一个header里的参数。一般用Authorization,但是我的键是ticket。于是尝试配置swagger,将每个接口都默认增加一个ticket的请求参数。

我在Java中用的swagger框架是springfox。springfox是比较新的,官方也一直在更新。java添加swagger我就不详细介绍了,这里只介绍如何在所有的swagger接口中默认都添加header参数

粘贴springfox配置如下:

package cn.ce.platform_service.interceptors;

import java.util.ArrayList;
import java.util.List;

import org.springframework.context.annotation.Bean;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
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;

/**
* @Description : swagger配置配置
* @Author : Mars
* @Date : 2017年9月6日
*/
@WebAppConfiguration
@EnableSwagger2
@EnableWebMvc
//@ComponentScan(basePackageClasses = {ApisController.class }) //Instructs spring where to scan for API controllers
public class SwaggerConfig {

  /**
   * Every Docket bean is picked up by the swagger-mvc framework - allowing for multiple
   * swagger groups i.e. same code base multiple swagger resource listings.
   */
  @Bean
  public Docket customDocket(){
  	ParameterBuilder ticketPar = new ParameterBuilder();
    List<Parameter> pars = new ArrayList<Parameter>();
  	ticketPar.name("ticket").description("user ticket")
  	.modelRef(new ModelRef("string")).parameterType("header")
  	.required(false).build(); //header中的ticket参数非必填,传空也可以
  	pars.add(ticketPar.build());  //根据每个方法名也知道当前方法在设置什么参数

    return new Docket(DocumentationType.SWAGGER_2)
    		.select()
    		.apis(RequestHandlerSelectors.any())
        .build()
        .globalOperationParameters(pars)
        .apiInfo(apiInfo());
  }

  ApiInfo apiInfo() {
  	return new ApiInfoBuilder()
      .title("api swagger document")
      .description("前后端联调swagger api 文档")
      .version("2.1.5.5")
      .build();
  }
}

修改swagger的配置文件如上即能满足swagger中所有的接口默认都加上ticket参数,非必填如下图:

以上这篇java swagger ui 添加header请求头参数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2019-08-27

Spring MVC+FastJson+Swagger集成的完整实例教程

基础部分 1. FastJson 简介 Fastjson是一个Java库,可用于将Java对象转换为JSON表示.它也可以被用来将一个JSON字符串转换成一个等效的Java对象.在转换速度上应该是最快的,几乎成为了项目的标配(在ajax请求和接口开发时一般都会用fastjson而不再使用jackson). GitHub: https://github.com/alibaba/fastjson (本地下载) 特性: 在服务器端和android客户端提供最佳性能 提供简单toJSONString()

springboot2.x集成swagger的方法示例

集成swagger pom包配置 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <!-- swagger-ui --> <dependency> <groupId>io

详解如何在SpringBoot里使用SwaggerUI

Swagger Swagger是一种和语言无关的规范和框架,用于定义服务接口,主要用于描述RESTful的API.它专注于为API创建优秀的文档和客户端库.支持Swagger的API可以为API方法生成交互式的文档,让用户可以通过以可视化的方式试验,查看请求和响应.头文件和返回代码,从而发现API的功能. swagger用于定义API文档. 好处: 前后端分离开发 API文档非常明确 测试的时候不需要再使用URL输入浏览器的方式来访问Controller 传统的输入URL的测试方式对于post请

SpringMVC 中配置 Swagger 插件的教程(分享)

一.简介 Swagger的目标是为REST API定义一个与语言无关的标准接口,允许用户发现和理解计算机服务的功能,而无需访问源代码.当通过Swagger正确定义时,用户可以用最少量的实现逻辑理解远程服务并与之交互.类似于低级编程所做的接口. 二.实现步骤 1.添加 Maven 依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifact

Java利用Swagger2自动生成对外接口的文档

一直以来做对外的接口文档都比较原始,基本上都是手写的文档传来传去,最近发现了一个新玩具,可以在接口上省去不少麻烦. swagger是一款方便展示的API文档框架.它可以将接口的类型最全面的展示给对方开发人员,避免了手写文档的片面和误差行为. swagger目前有两种swagger和swagger2两种,1比较麻烦,所以不考虑使用.本文主要记录我用swagger2做对外接口的两种方式,方面后面查阅. 一.使用传统的springmvc整合swagger2 1.maven依赖 <!--springfo

java中四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里 SAX:http://sourceforge.net/projects/sax/ JDOM:http://jdom.org/downloads/index.html DOM4J:http://sourceforge.net/projects/dom4j/  一.介绍及优缺点分析

利用python自动生成docker nginx反向代理配置

利用python自动生成docker nginx反向代理配置 由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候,自动生成nginx反向代理,然后reload nginx 我的原则是尽量简单,轻量,内存占用少 目标很明确,只要能监听到docker的容器启动/停止事件,即可 网上查了一下可以用docker events来监听docker事件,试了一下

Java利用反射自动封装成实体对象的方法

本文实例讲述了Java利用反射自动封装成实体对象的方法.分享给大家供大家参考.具体分析如下: 利用此方法的时候需要传递的参数的名称,必须以行号结尾,去掉行号就是属性名称,比如页面传递name+rowNo,那么实体对象的属性名应该为name.代码如下 复制代码 代码如下: //获取页面数据,自动封装成bean对象 public List getObjectList(Class clazz,String[] rowNos) throws Exception{         List objList

Python利用sqlacodegen自动生成ORM实体类示例

本文实例讲述了Python利用sqlacodegen自动生成ORM实体类.分享给大家供大家参考,具体如下: 在前面一篇<Python流行ORM框架sqlalchemy安装与使用>我们是手动创建了一个名叫Infos.py的文件,然后定义了一个News类,把这个类作为和我们news数据表的映射. from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() from sqlalchemy impo

Django 自动生成api接口文档教程

最近在写测试平台,需要实现一个节点服务器的api,正好在用django,准备使用djangorestframework插件实现. 需求 实现一个接口,在调用时,通过传递的参数,直接运行对应项目的自动化测试 环境 Python3.6 ,PyCharm,W7 项目结构 功能实现 流程 我们要做的就是实现以上流程 安装 pip install djangorestframework pip install markdown pip install django-filter # Filtering s

java使用dom4j生成与解析xml文档的方法示例

本文实例讲述了java使用dom4j生成与解析xml文档的方法.分享给大家供大家参考,具体如下: xml是一种新的数据格式,主要用于数据交换.我们所用的框架都有涉及到xml.因此解析或生成xml对程序员也是一个技术难点.这里就用dom4j来生成一个文档,需要注意的是每个xml文档只有一个根节点. package org.lxh; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutput

Java获取XML节点总结之读取XML文档节点的方法

dom4j是Java的XML API,用来读写XML文件的.目前有很多场景中使用dom4j来读写xml的. 要使用dom4j开发,需要下载导入dom4j相应的jar文件. 官网下载:http://www.dom4j.org/dom4j-1.6.1/ github下载:http://dom4j.github.io/ 下载解压之后如图所示: 我们只需要把dom4j-1.6.1.jar文件构建到我们开发项目中就可以了. 下面就以Eclipse创建java项目的构建方法为例说明: 声明:本Java项目的

利用python将图片转换成excel文档格式

前言 本文主要介绍了关于利用python将图片转换成excel文档的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 实现步骤 读取图像,获取图像每个像素点的RGB值: 根据每个像素点的RGB值设置excel每个方格的颜色值: 根据像素点的坐标,写入excel文件: 保存退出: 示例代码 from PIL import Image import numpy as np import time import matplotlib.pyplot as plt import

SpringBoot结合Swagger2自动生成api文档的方法

首先在pom.xml中添加如下依赖,其它web,lombok等依赖自行添加 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.spri