forked from loafle/openapi-generator-original
Add multiple parameter examples to CodegenParameter (#15647)
* Add examples to CodegenParameter * Set CodegenParameter examples * Add examples to CodegenParameter * Set CodegenParameter examples * Regeneration samples
This commit is contained in:
parent
3db7169959
commit
1f4cbb8f00
@ -17,6 +17,8 @@
|
||||
|
||||
package org.openapitools.codegen;
|
||||
|
||||
import io.swagger.v3.oas.models.examples.Example;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
@ -33,6 +35,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
|
||||
|
||||
public String nameInLowerCase; // property name in lower case
|
||||
public String example; // example value (x-example)
|
||||
public Map<String, Example> examples;
|
||||
public String jsonSchema;
|
||||
public boolean isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isDecimal, isByteArray, isBinary,
|
||||
isBoolean, isDate, isDateTime, isUuid, isUri, isEmail, isPassword, isFreeFormObject, isAnyType, isShort, isUnboundedInteger;
|
||||
@ -159,6 +162,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
|
||||
output.defaultValue = this.defaultValue;
|
||||
output.enumDefaultValue = this.enumDefaultValue;
|
||||
output.example = this.example;
|
||||
output.examples = this.examples;
|
||||
output.isEnum = this.isEnum;
|
||||
output.isEnumRef = this.isEnumRef;
|
||||
output.maxProperties = this.maxProperties;
|
||||
@ -249,7 +253,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(isFormParam, isQueryParam, isPathParam, isHeaderParam, isCookieParam, isBodyParam, isContainer, isCollectionFormatMulti, isPrimitiveType, isModel, isExplode, baseName, paramName, dataType, datatypeWithEnum, dataFormat, collectionFormat, description, unescapedDescription, baseType, defaultValue, enumDefaultValue, enumName, style, isDeepObject, isAllowEmptyValue, example, jsonSchema, isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isDecimal, isByteArray, isBinary, isBoolean, isDate, isDateTime, isUuid, isUri, isEmail, isPassword, isFreeFormObject, isAnyType, isArray, isMap, isFile, isEnum, isEnumRef, _enum, allowableValues, items, mostInnerItems, additionalProperties, vars, requiredVars, vendorExtensions, hasValidation, getMaxProperties(), getMinProperties(), isNullable, isDeprecated, required, getMaximum(), getExclusiveMaximum(), getMinimum(), getExclusiveMinimum(), getMaxLength(), getMinLength(), getPattern(), getMaxItems(), getMinItems(), getUniqueItems(), contentType, multipleOf, isNull, isVoid, additionalPropertiesIsAnyType, hasVars, hasRequired, isShort, isUnboundedInteger, hasDiscriminatorWithNonEmptyMapping, composedSchemas, hasMultipleTypes, schema, content, requiredVarsMap, ref, uniqueItemsBoolean, schemaIsFromAdditionalProperties);
|
||||
return Objects.hash(isFormParam, isQueryParam, isPathParam, isHeaderParam, isCookieParam, isBodyParam, isContainer, isCollectionFormatMulti, isPrimitiveType, isModel, isExplode, baseName, paramName, dataType, datatypeWithEnum, dataFormat, collectionFormat, description, unescapedDescription, baseType, defaultValue, enumDefaultValue, enumName, style, isDeepObject, isAllowEmptyValue, example, examples, jsonSchema, isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isDecimal, isByteArray, isBinary, isBoolean, isDate, isDateTime, isUuid, isUri, isEmail, isPassword, isFreeFormObject, isAnyType, isArray, isMap, isFile, isEnum, isEnumRef, _enum, allowableValues, items, mostInnerItems, additionalProperties, vars, requiredVars, vendorExtensions, hasValidation, getMaxProperties(), getMinProperties(), isNullable, isDeprecated, required, getMaximum(), getExclusiveMaximum(), getMinimum(), getExclusiveMinimum(), getMaxLength(), getMinLength(), getPattern(), getMaxItems(), getMinItems(), getUniqueItems(), contentType, multipleOf, isNull, isVoid, additionalPropertiesIsAnyType, hasVars, hasRequired, isShort, isUnboundedInteger, hasDiscriminatorWithNonEmptyMapping, composedSchemas, hasMultipleTypes, schema, content, requiredVarsMap, ref, uniqueItemsBoolean, schemaIsFromAdditionalProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -331,6 +335,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
|
||||
Objects.equals(isDeepObject, that.isDeepObject) &&
|
||||
Objects.equals(isAllowEmptyValue, that.isAllowEmptyValue) &&
|
||||
Objects.equals(example, that.example) &&
|
||||
Objects.equals(examples, that.examples) &&
|
||||
Objects.equals(jsonSchema, that.jsonSchema) &&
|
||||
Objects.equals(_enum, that._enum) &&
|
||||
Objects.equals(allowableValues, that.allowableValues) &&
|
||||
@ -392,6 +397,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
|
||||
sb.append(", deepObject='").append(isDeepObject).append('\'');
|
||||
sb.append(", allowEmptyValue='").append(isAllowEmptyValue).append('\'');
|
||||
sb.append(", example='").append(example).append('\'');
|
||||
sb.append(", examples='").append(examples).append('\'');
|
||||
sb.append(", jsonSchema='").append(jsonSchema).append('\'');
|
||||
sb.append(", isString=").append(isString);
|
||||
sb.append(", isNumeric=").append(isNumeric);
|
||||
|
@ -2023,6 +2023,18 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
setParameterExampleValue(codegenParameter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the examples of the parameter.
|
||||
*
|
||||
* @param codegenParameter Codegen parameter
|
||||
* @param parameter Parameter
|
||||
*/
|
||||
public void setParameterExamples(CodegenParameter codegenParameter, Parameter parameter) {
|
||||
if (parameter.getExamples() != null && !parameter.getExamples().isEmpty()) {
|
||||
codegenParameter.examples = parameter.getExamples();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the example value of the parameter.
|
||||
*
|
||||
@ -4880,6 +4892,8 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
// set the parameter example value
|
||||
// should be overridden by lang codegen
|
||||
setParameterExampleValue(codegenParameter, parameter);
|
||||
// set the parameter examples (if available)
|
||||
setParameterExamples(codegenParameter, parameter);
|
||||
|
||||
postProcessParameter(codegenParameter);
|
||||
LOGGER.debug("debugging codegenParameter return: {}", codegenParameter);
|
||||
|
@ -862,8 +862,10 @@ public class DefaultCodegenTest {
|
||||
Operation operation2 = openAPI.getPaths().get("/example1/plural").getGet();
|
||||
CodegenParameter codegenParameter2 = CodegenModelFactory.newInstance(CodegenModelType.PARAMETER);
|
||||
codegen.setParameterExampleValue(codegenParameter2, operation2.getParameters().get(0));
|
||||
|
||||
Assert.assertEquals(codegenParameter2.example, "An example1 value");
|
||||
// verify examples are available
|
||||
codegen.setParameterExamples(codegenParameter2, operation2.getParameters().get(0));
|
||||
Assert.assertEquals(codegenParameter2.examples.size(), 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Loading…
x
Reference in New Issue
Block a user