/** * * 根据method上的数据,综合生成契约参数 */ protected void scanMethodParameters() { Annotation[][] allAnnotations = providerMethod.getParameterAnnotations(); Type[] parameterTypes = providerMethod.getGenericParameterTypes(); for (int paramIdx = 0; paramIdx < parameterTypes.length; paramIdx++) { int swaggerParamCount = providerParameters.size(); Type type = parameterTypes[paramIdx]; // 根据annotation处理 Annotation[] paramAnnotations = allAnnotations[paramIdx]; processByParameterAnnotation(paramAnnotations, paramIdx, type); if (isArgumentNotProcessed(swaggerParamCount)) { // 是否需要根据参数类型处理,目标场景:httpRequest之类 processByParameterType(type, paramIdx); } if (isArgumentNotProcessed(swaggerParamCount)) { // 没有用于描述契约的标注,根据函数原型来反射生成 context.getDefaultParamProcessor().process(this, paramIdx); } if (!isArgumentNotProcessed(swaggerParamCount)) { Parameter parameter = providerParameters.get(this.providerParameters.size() - 1); AnnotationUtils.processApiParam(paramAnnotations, parameter); } } }
/** * * 根据method上的数据,综合生成契约参数 */ protected void scanMethodParameters() { Annotation[][] allAnnotations = providerMethod.getParameterAnnotations(); Type[] parameterTypes = providerMethod.getGenericParameterTypes(); for (int paramIdx = 0; paramIdx < parameterTypes.length; paramIdx++) { int swaggerParamCount = providerParameters.size(); Type type = parameterTypes[paramIdx]; // 根据annotation处理 Annotation[] paramAnnotations = allAnnotations[paramIdx]; processByParameterAnnotation(paramAnnotations, paramIdx, type); if (isArgumentNotProcessed(swaggerParamCount)) { // 是否需要根据参数类型处理,目标场景:httpRequest之类 processByParameterType(type, paramIdx); } if (isArgumentNotProcessed(swaggerParamCount)) { // 没有用于描述契约的标注,根据函数原型来反射生成 context.getDefaultParamProcessor().process(this, paramIdx); } if (!isArgumentNotProcessed(swaggerParamCount)) { Parameter parameter = providerParameters.get(this.providerParameters.size() - 1); AnnotationUtils.processApiParam(paramAnnotations, parameter); } } }