code: public static Set<ApiHeaderDoc> buildHeaders(Method method) {
  		Set<ApiHeaderDoc> headers = new LinkedHashSet<ApiHeaderDoc>();
  		Class<?> controller = method.getDeclaringClass();
  
  		RequestMapping typeAnnotation = getAnnotation(controller, RequestMapping.class);
  		RequestMapping methodAnnotation = getAnnotation(method, RequestMapping.class);
  
  		if (typeAnnotation != null) {
  			List<String> headersStringList = Arrays.asList(typeAnnotation.headers());
  			addToHeaders(headers, headersStringList);
  		}
  
  		if (methodAnnotation != null) {
  			List<String> headersStringList = Arrays.asList(methodAnnotation.headers());
  			addToHeaders(headers, headersStringList);
  		}
  		
  		Annotation[][] parametersAnnotations = method.getParameterAnnotations();
  		for (int i = 0; i < parametersAnnotations.length; i++) {
  			for (int j = 0; j < parametersAnnotations[i].length; j++) {
  				if (parametersAnnotations[i][j] instanceof RequestHeader) {
  					RequestHeader requestHeader = (RequestHeader) parametersAnnotations[i][j];
  					headers.add(new ApiHeaderDoc(requestHeader.value(), "", requestHeader.defaultValue().equals(ValueConstants.DEFAULT_NONE) ? new String[] {} : new String[] { requestHeader.defaultValue() }));
  				}
  			}
  		}
  
  		return headers;
  	}
docs: From Spring's documentation: Supported at the type level as well as at
  the method level! When used at the type level, all method-level mappings
  inherit this header restriction. Finally it looks for @ApiHeader
  annotations on parameters and adds the result to the final Set
  
  @param method
  @return