Add containerTypeMapped (#15881)

* add containerTypeMapped

* update samples

* update java inflector sample
This commit is contained in:
William Cheng
2023-06-30 09:38:39 +08:00
committed by GitHub
parent 15b3addd40
commit 8add9119df
17 changed files with 218 additions and 184 deletions

View File

@@ -55,6 +55,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
public boolean isNullable;
public boolean isDeprecated;
public String containerType;
public String containerTypeMapped; // language-specified container type (e.g. `dict` in python for map)
private CodegenProperty schema;
private boolean additionalPropertiesIsAnyType;
@@ -143,6 +144,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
output.unescapedDescription = this.unescapedDescription;
output.baseType = this.baseType;
output.containerType = this.containerType;
output.containerTypeMapped = this.containerTypeMapped;
output.isFormParam = this.isFormParam;
output.isQueryParam = this.isQueryParam;
output.isPathParam = this.isPathParam;
@@ -257,7 +259,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, containerType, 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);
return Objects.hash(isFormParam, isQueryParam, isPathParam, isHeaderParam, isCookieParam, isBodyParam, isContainer, isCollectionFormatMulti, isPrimitiveType, isModel, isExplode, baseName, paramName, dataType, datatypeWithEnum, dataFormat, collectionFormat, description, unescapedDescription, baseType, containerType, containerTypeMapped, 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
@@ -333,6 +335,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
Objects.equals(unescapedDescription, that.unescapedDescription) &&
Objects.equals(baseType, that.baseType) &&
Objects.equals(containerType, that.containerType) &&
Objects.equals(containerTypeMapped, that.containerTypeMapped) &&
Objects.equals(defaultValue, that.defaultValue) &&
Objects.equals(enumDefaultValue, that.enumDefaultValue) &&
Objects.equals(enumName, that.enumName) &&
@@ -396,6 +399,7 @@ public class CodegenParameter implements IJsonSchemaValidationProperties {
sb.append(", unescapedDescription='").append(unescapedDescription).append('\'');
sb.append(", baseType='").append(baseType).append('\'');
sb.append(", containerType='").append(containerType).append('\'');
sb.append(", containerTypeMapped='").append(containerTypeMapped).append('\'');
sb.append(", defaultValue='").append(defaultValue).append('\'');
sb.append(", enumDefaultValue='").append(enumDefaultValue).append('\'');
sb.append(", enumName='").append(enumName).append('\'');

View File

@@ -50,6 +50,8 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
public String defaultValueWithParam;
public String baseType;
public String containerType;
public String containerTypeMapped; // language-specified container type (e.g. `dict` in python for map)
/**
* The value of the 'title' attribute in the OpenAPI schema.
*/
@@ -391,6 +393,15 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
this.containerType = containerType;
}
public String getContainerTypeMapped() {
return containerTypeMapped;
}
public void setContainerTypeMapped(String containerTypeMapped) {
this.containerTypeMapped = containerTypeMapped;
}
public String getTitle() {
return title;
}
@@ -1034,6 +1045,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
sb.append(", defaultValueWithParam='").append(defaultValueWithParam).append('\'');
sb.append(", baseType='").append(baseType).append('\'');
sb.append(", containerType='").append(containerType).append('\'');
sb.append(", containerTypeMapped='").append(containerTypeMapped).append('\'');
sb.append(", title='").append(title).append('\'');
sb.append(", unescapedDescription='").append(unescapedDescription).append('\'');
sb.append(", maxLength=").append(maxLength);
@@ -1217,6 +1229,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
Objects.equals(defaultValueWithParam, that.defaultValueWithParam) &&
Objects.equals(baseType, that.baseType) &&
Objects.equals(containerType, that.containerType) &&
Objects.equals(containerTypeMapped, that.containerTypeMapped) &&
Objects.equals(title, that.title) &&
Objects.equals(unescapedDescription, that.unescapedDescription) &&
Objects.equals(maxLength, that.maxLength) &&
@@ -1251,7 +1264,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
return Objects.hash(openApiType, baseName, complexType, getter, setter, description,
dataType, datatypeWithEnum, dataFormat, name, min, max, defaultValue,
defaultValueWithParam, baseType, containerType, title, unescapedDescription,
defaultValueWithParam, baseType, containerType, containerTypeMapped, title, unescapedDescription,
maxLength, minLength, pattern, example, jsonSchema, minimum, maximum,
exclusiveMinimum, exclusiveMaximum, required, deprecated,
hasMoreNonReadOnly, isPrimitiveType, isModel, isContainer, isString, isNumeric,

View File

@@ -33,6 +33,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
public String dataType;
public String baseType;
public String containerType;
public String containerTypeMapped; // language-specified container type (e.g. `dict` in python for map)
public boolean hasHeaders;
public boolean isString;
public boolean isNumeric;
@@ -98,7 +99,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
@Override
public int hashCode() {
return Objects.hash(headers, code, message, examples, dataType, baseType, containerType, hasHeaders,
return Objects.hash(headers, code, message, examples, dataType, baseType, containerType, containerTypeMapped, hasHeaders,
isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isDecimal, isByteArray, isBoolean, isDate,
isDateTime, isUuid, isEmail, isPassword, isModel, isFreeFormObject, isAnyType, isDefault, simpleType, primitiveType,
isMap, isArray, isBinary, isFile, schema, jsonSchema, vendorExtensions, items, additionalProperties,
@@ -174,6 +175,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
Objects.equals(dataType, that.dataType) &&
Objects.equals(baseType, that.baseType) &&
Objects.equals(containerType, that.containerType) &&
Objects.equals(containerTypeMapped, that.containerTypeMapped) &&
Objects.equals(schema, that.schema) &&
Objects.equals(jsonSchema, that.jsonSchema) &&
Objects.equals(vendorExtensions, that.vendorExtensions) &&
@@ -555,6 +557,7 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
sb.append(", dataType='").append(dataType).append('\'');
sb.append(", baseType='").append(baseType).append('\'');
sb.append(", containerType='").append(containerType).append('\'');
sb.append(", containerTypeMapped='").append(containerTypeMapped).append('\'');
sb.append(", hasHeaders=").append(hasHeaders);
sb.append(", isString=").append(isString);
sb.append(", isNumeric=").append(isNumeric);

View File

@@ -3679,6 +3679,7 @@ public class DefaultCodegen implements CodegenConfig {
}
property.isContainer = true;
property.containerType = "map";
property.containerTypeMapped = typeMapping.get(property.containerType);
// TODO remove this hack in the future, code should use minProperties and maxProperties for object schemas
property.minItems = p.getMinProperties();
property.maxItems = p.getMaxProperties();
@@ -4025,8 +4026,10 @@ public class DefaultCodegen implements CodegenConfig {
property.isContainer = true;
if (ModelUtils.isSet(p)) {
property.containerType = "set";
property.containerTypeMapped = typeMapping.get(property.containerType);
} else {
property.containerType = "array";
property.containerTypeMapped = typeMapping.get(property.containerType);
}
property.baseType = getSchemaType(p);
@@ -4816,6 +4819,7 @@ public class DefaultCodegen implements CodegenConfig {
r.simpleType = false;
r.isArray = true;
r.containerType = cp.containerType;
r.containerTypeMapped = typeMapping.get(cp.containerType);
ArraySchema as = (ArraySchema) responseSchema;
CodegenProperty items = fromProperty("response", getSchemaItems(as), false);
r.setItems(items);
@@ -4877,6 +4881,7 @@ public class DefaultCodegen implements CodegenConfig {
}
r.simpleType = false;
r.containerType = cp.containerType;
r.containerTypeMapped = cp.containerTypeMapped;
addVarsRequiredVarsAdditionalProps(responseSchema, r);
} else if (ModelUtils.isAnyType(responseSchema)) {
addVarsRequiredVarsAdditionalProps(responseSchema, r);
@@ -5236,6 +5241,7 @@ public class DefaultCodegen implements CodegenConfig {
// set containerType
codegenParameter.containerType = codegenProperty.containerType;
codegenParameter.containerTypeMapped = codegenProperty.containerTypeMapped;
// enum
updateCodegenPropertyEnum(codegenProperty);
@@ -5644,15 +5650,13 @@ public class DefaultCodegen implements CodegenConfig {
addImport(model, property.complexType);
model.parent = toInstantiationType(schema);
if (!addSchemaImportsFromV3SpecLocations) {
final String containerType = property.containerType;
final String instantiationType = instantiationTypes.get(containerType);
final String instantiationType = instantiationTypes.get(property.containerType);
if (instantiationType != null) {
addImport(model, instantiationType);
}
final String mappedType = typeMapping.get(containerType);
if (mappedType != null) {
addImport(model, mappedType);
if (property.containerTypeMapped != null) {
addImport(model, property.containerTypeMapped);
}
}
}
@@ -7041,6 +7045,7 @@ public class DefaultCodegen implements CodegenConfig {
codegenParameter.unescapedDescription = codegenProperty.getDescription();
codegenParameter.jsonSchema = Json.pretty(propertySchema);
codegenParameter.containerType = codegenProperty.containerType;
codegenParameter.containerTypeMapped = codegenProperty.containerTypeMapped;
if (codegenProperty.getVendorExtensions() != null && !codegenProperty.getVendorExtensions().isEmpty()) {
codegenParameter.vendorExtensions = codegenProperty.getVendorExtensions();
@@ -7195,6 +7200,7 @@ public class DefaultCodegen implements CodegenConfig {
codegenParameter.isMap = Boolean.TRUE;
codegenParameter.isNullable = codegenProperty.isNullable;
codegenParameter.containerType = codegenProperty.containerType;
codegenParameter.containerTypeMapped = codegenProperty.containerTypeMapped;
// set nullable
setParameterNullable(codegenParameter, codegenProperty);
@@ -7305,6 +7311,7 @@ public class DefaultCodegen implements CodegenConfig {
codegenParameter.isContainer = Boolean.TRUE;
codegenParameter.isNullable = codegenProperty.isNullable;
codegenParameter.containerType = codegenProperty.containerType;
codegenParameter.containerTypeMapped = codegenProperty.containerTypeMapped;
// set nullable
setParameterNullable(codegenParameter, codegenProperty);

View File

@@ -460,12 +460,15 @@ public class PythonClientCodegenTest {
op = codegen.fromOperation(path, "post", p, null);
Assert.assertEquals(op.allParams.get(0).baseName, "User");
Assert.assertEquals(op.allParams.get(0).containerType, "array");
Assert.assertEquals(op.allParams.get(0).containerTypeMapped, "List");
path = "/pet";
p = openAPI.getPaths().get(path).getPost();
op = codegen.fromOperation(path, "post", p, null);
Assert.assertEquals(op.allParams.get(0).baseName, "Pet");
Assert.assertEquals(op.allParams.get(0).containerType, null);
Assert.assertEquals(op.allParams.get(0).containerTypeMapped, null);
}
@Test(description = "test containerType (dict) in parameters")
@@ -478,6 +481,7 @@ public class PythonClientCodegenTest {
Operation p = openAPI.getPaths().get(path).getGet();
CodegenOperation op = codegen.fromOperation(path, "get", p, null);
Assert.assertEquals(op.allParams.get(0).containerType, "map");
Assert.assertEquals(op.allParams.get(0).containerTypeMapped, "Dict");
Assert.assertEquals(op.allParams.get(0).baseName, "dict_string_integer");
}
}

View File

@@ -15,15 +15,12 @@ src/gen/java/org/openapitools/model/ArrayOfArrayOfNumberOnly.java
src/gen/java/org/openapitools/model/ArrayOfNumberOnly.java
src/gen/java/org/openapitools/model/ArrayTest.java
src/gen/java/org/openapitools/model/BigCat.java
src/gen/java/org/openapitools/model/BigCatAllOf.java
src/gen/java/org/openapitools/model/Capitalization.java
src/gen/java/org/openapitools/model/Cat.java
src/gen/java/org/openapitools/model/CatAllOf.java
src/gen/java/org/openapitools/model/Category.java
src/gen/java/org/openapitools/model/ClassModel.java
src/gen/java/org/openapitools/model/Client.java
src/gen/java/org/openapitools/model/Dog.java
src/gen/java/org/openapitools/model/DogAllOf.java
src/gen/java/org/openapitools/model/EnumArrays.java
src/gen/java/org/openapitools/model/EnumClass.java
src/gen/java/org/openapitools/model/EnumTest.java

View File

@@ -1 +1 @@
6.0.0-SNAPSHOT
7.0.0-SNAPSHOT

View File

@@ -17,15 +17,12 @@ ArrayOfArrayOfNumberOnly : org.openapitools.model.ArrayOfArrayOfNumberOnly
ArrayOfNumberOnly : org.openapitools.model.ArrayOfNumberOnly
ArrayTest : org.openapitools.model.ArrayTest
BigCat : org.openapitools.model.BigCat
BigCatAllOf : org.openapitools.model.BigCatAllOf
Capitalization : org.openapitools.model.Capitalization
Cat : org.openapitools.model.Cat
CatAllOf : org.openapitools.model.CatAllOf
Category : org.openapitools.model.Category
ClassModel : org.openapitools.model.ClassModel
Client : org.openapitools.model.Client
Dog : org.openapitools.model.Dog
DogAllOf : org.openapitools.model.DogAllOf
EnumArrays : org.openapitools.model.EnumArrays
EnumClass : org.openapitools.model.EnumClass
EnumTest : org.openapitools.model.EnumTest

View File

@@ -1,6 +1,7 @@
package org.openapitools.model;
import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonSubTypes;

View File

@@ -6,7 +6,6 @@ import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.openapitools.model.BigCatAllOf;
import org.openapitools.model.Cat;

View File

@@ -6,7 +6,6 @@ import com.fasterxml.jackson.annotation.JsonCreator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.openapitools.model.Animal;
import org.openapitools.model.CatAllOf;

View File

@@ -6,7 +6,6 @@ import com.fasterxml.jackson.annotation.JsonCreator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.openapitools.model.Animal;
import org.openapitools.model.DogAllOf;

View File

@@ -7,7 +7,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

View File

@@ -7,7 +7,6 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.openapitools.model.Animal;

View File

@@ -3,6 +3,7 @@ package org.openapitools.model;
import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonTypeName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

View File

@@ -46,7 +46,7 @@ paths:
tags:
- pet
x-codegen-request-body-name: body
x-contentType: application/json
x-content-type: application/json
x-accepts: application/json
put:
operationId: updatePet
@@ -81,7 +81,7 @@ paths:
tags:
- pet
x-codegen-request-body-name: body
x-contentType: application/json
x-content-type: application/json
x-accepts: application/json
/pet/findByStatus:
get:
@@ -250,13 +250,7 @@ paths:
content:
application/x-www-form-urlencoded:
schema:
properties:
name:
description: Updated name of the pet
type: string
status:
description: Updated status of the pet
type: string
$ref: '#/components/schemas/updatePetWithForm_request'
responses:
"405":
content: {}
@@ -268,7 +262,7 @@ paths:
summary: Updates a pet in the store with form data
tags:
- pet
x-contentType: application/x-www-form-urlencoded
x-content-type: application/x-www-form-urlencoded
x-accepts: application/json
/pet/{petId}/uploadImage:
post:
@@ -285,14 +279,7 @@ paths:
content:
multipart/form-data:
schema:
properties:
additionalMetadata:
description: Additional data to pass to server
type: string
file:
description: file to upload
format: binary
type: string
$ref: '#/components/schemas/uploadFile_request'
responses:
"200":
content:
@@ -307,7 +294,7 @@ paths:
summary: uploads an image
tags:
- pet
x-contentType: multipart/form-data
x-content-type: multipart/form-data
x-accepts: application/json
/store/inventory:
get:
@@ -356,7 +343,7 @@ paths:
tags:
- store
x-codegen-request-body-name: body
x-contentType: '*/*'
x-content-type: '*/*'
x-accepts: application/json
/store/order/{order_id}:
delete:
@@ -434,7 +421,7 @@ paths:
tags:
- user
x-codegen-request-body-name: body
x-contentType: '*/*'
x-content-type: '*/*'
x-accepts: application/json
/user/createWithArray:
post:
@@ -456,7 +443,7 @@ paths:
tags:
- user
x-codegen-request-body-name: body
x-contentType: '*/*'
x-content-type: '*/*'
x-accepts: application/json
/user/createWithList:
post:
@@ -478,7 +465,7 @@ paths:
tags:
- user
x-codegen-request-body-name: body
x-contentType: '*/*'
x-content-type: '*/*'
x-accepts: application/json
/user/login:
get:
@@ -614,7 +601,7 @@ paths:
tags:
- user
x-codegen-request-body-name: body
x-contentType: '*/*'
x-content-type: '*/*'
x-accepts: application/json
/fake_classname_test:
patch:
@@ -640,7 +627,7 @@ paths:
tags:
- fake_classname_tags 123#$%^
x-codegen-request-body-name: body
x-contentType: application/json
x-content-type: application/json
x-accepts: application/json
/fake:
delete:
@@ -763,24 +750,7 @@ paths:
content:
application/x-www-form-urlencoded:
schema:
properties:
enum_form_string_array:
description: Form parameter enum test (string array)
items:
default: $
enum:
- '>'
- $
type: string
type: array
enum_form_string:
default: -efg
description: Form parameter enum test (string)
enum:
- _abc
- -efg
- (xyz)
type: string
$ref: '#/components/schemas/testEnumParameters_request'
responses:
"400":
content: {}
@@ -791,7 +761,7 @@ paths:
summary: To test enum parameters
tags:
- fake
x-contentType: application/x-www-form-urlencoded
x-content-type: application/x-www-form-urlencoded
x-accepts: application/json
patch:
description: To test "client" model
@@ -814,7 +784,7 @@ paths:
tags:
- fake
x-codegen-request-body-name: body
x-contentType: application/json
x-content-type: application/json
x-accepts: application/json
post:
description: |-
@@ -827,77 +797,7 @@ paths:
content:
application/x-www-form-urlencoded:
schema:
properties:
integer:
description: None
format: int32
maximum: 100
minimum: 10
type: integer
int32:
description: None
format: int32
maximum: 200
minimum: 20
type: integer
int64:
description: None
format: int64
type: integer
number:
description: None
maximum: 543.2
minimum: 32.1
type: number
float:
description: None
format: float
maximum: 987.6
type: number
double:
description: None
format: double
maximum: 123.4
minimum: 67.8
type: number
string:
description: None
pattern: "/[a-z]/i"
type: string
pattern_without_delimiter:
description: None
pattern: "^[A-Z].*"
type: string
byte:
description: None
format: byte
type: string
binary:
description: None
format: binary
type: string
date:
description: None
format: date
type: string
dateTime:
description: None
format: date-time
type: string
password:
description: None
format: password
maxLength: 64
minLength: 10
type: string
callback:
description: None
type: string
required:
- byte
- double
- number
- pattern_without_delimiter
$ref: '#/components/schemas/testEndpointParameters_request'
required: true
responses:
"400":
@@ -915,7 +815,7 @@ paths:
가짜 엔드 포인트
tags:
- fake
x-contentType: application/x-www-form-urlencoded
x-content-type: application/x-www-form-urlencoded
x-accepts: application/json
/fake/outer/number:
post:
@@ -938,7 +838,7 @@ paths:
tags:
- fake
x-codegen-request-body-name: body
x-contentType: '*/*'
x-content-type: '*/*'
x-accepts: '*/*'
/fake/outer/string:
post:
@@ -961,7 +861,7 @@ paths:
tags:
- fake
x-codegen-request-body-name: body
x-contentType: '*/*'
x-content-type: '*/*'
x-accepts: '*/*'
/fake/outer/boolean:
post:
@@ -984,7 +884,7 @@ paths:
tags:
- fake
x-codegen-request-body-name: body
x-contentType: '*/*'
x-content-type: '*/*'
x-accepts: '*/*'
/fake/outer/composite:
post:
@@ -1007,7 +907,7 @@ paths:
tags:
- fake
x-codegen-request-body-name: body
x-contentType: '*/*'
x-content-type: '*/*'
x-accepts: '*/*'
/fake/jsonFormData:
get:
@@ -1016,16 +916,7 @@ paths:
content:
application/x-www-form-urlencoded:
schema:
properties:
param:
description: field1
type: string
param2:
description: field2
type: string
required:
- param
- param2
$ref: '#/components/schemas/testJsonFormData_request'
required: true
responses:
"200":
@@ -1034,7 +925,7 @@ paths:
summary: test json serialization of form data
tags:
- fake
x-contentType: application/x-www-form-urlencoded
x-content-type: application/x-www-form-urlencoded
x-accepts: application/json
/fake/inline-additionalProperties:
post:
@@ -1056,7 +947,7 @@ paths:
tags:
- fake
x-codegen-request-body-name: param
x-contentType: application/json
x-content-type: application/json
x-accepts: application/json
/fake/body-with-query-params:
put:
@@ -1080,7 +971,7 @@ paths:
tags:
- fake
x-codegen-request-body-name: body
x-contentType: application/json
x-content-type: application/json
x-accepts: application/json
/fake/create_xml_item:
post:
@@ -1116,7 +1007,7 @@ paths:
tags:
- fake
x-codegen-request-body-name: XmlItem
x-contentType: application/xml
x-content-type: application/xml
x-accepts: application/json
/another-fake/dummy:
patch:
@@ -1140,7 +1031,7 @@ paths:
tags:
- $another-fake?
x-codegen-request-body-name: body
x-contentType: application/json
x-content-type: application/json
x-accepts: application/json
/fake/body-with-file-schema:
put:
@@ -1160,7 +1051,7 @@ paths:
tags:
- fake
x-codegen-request-body-name: body
x-contentType: application/json
x-content-type: application/json
x-accepts: application/json
/fake/test-query-parameters:
put:
@@ -1231,16 +1122,7 @@ paths:
content:
multipart/form-data:
schema:
properties:
additionalMetadata:
description: Additional data to pass to server
type: string
requiredFile:
description: file to upload
format: binary
type: string
required:
- requiredFile
$ref: '#/components/schemas/uploadFileWithRequiredFile_request'
required: true
responses:
"200":
@@ -1256,7 +1138,7 @@ paths:
summary: uploads an image (required)
tags:
- pet
x-contentType: multipart/form-data
x-content-type: multipart/form-data
x-accepts: application/json
components:
schemas:
@@ -1482,15 +1364,29 @@ components:
Dog:
allOf:
- $ref: '#/components/schemas/Animal'
- $ref: '#/components/schemas/Dog_allOf'
- properties:
breed:
type: string
type: object
Cat:
allOf:
- $ref: '#/components/schemas/Animal'
- $ref: '#/components/schemas/Cat_allOf'
- properties:
declawed:
type: boolean
type: object
BigCat:
allOf:
- $ref: '#/components/schemas/Cat'
- $ref: '#/components/schemas/BigCat_allOf'
- properties:
kind:
enum:
- lions
- tigers
- leopards
- jaguars
type: string
type: object
Animal:
discriminator:
propertyName: className
@@ -2147,26 +2043,142 @@ components:
xml:
namespace: http://a.com/schema
prefix: pre
Dog_allOf:
updatePetWithForm_request:
properties:
breed:
name:
description: Updated name of the pet
type: string
status:
description: Updated status of the pet
type: string
type: object
Cat_allOf:
uploadFile_request:
properties:
declawed:
type: boolean
additionalMetadata:
description: Additional data to pass to server
type: string
file:
description: file to upload
format: binary
type: string
type: object
BigCat_allOf:
testEnumParameters_request:
properties:
kind:
enum_form_string_array:
description: Form parameter enum test (string array)
items:
default: $
enum:
- '>'
- $
type: string
type: array
enum_form_string:
default: -efg
description: Form parameter enum test (string)
enum:
- lions
- tigers
- leopards
- jaguars
- _abc
- -efg
- (xyz)
type: string
type: object
testEndpointParameters_request:
properties:
integer:
description: None
format: int32
maximum: 100
minimum: 10
type: integer
int32:
description: None
format: int32
maximum: 200
minimum: 20
type: integer
int64:
description: None
format: int64
type: integer
number:
description: None
maximum: 543.2
minimum: 32.1
type: number
float:
description: None
format: float
maximum: 987.6
type: number
double:
description: None
format: double
maximum: 123.4
minimum: 67.8
type: number
string:
description: None
pattern: "/[a-z]/i"
type: string
pattern_without_delimiter:
description: None
pattern: "^[A-Z].*"
type: string
byte:
description: None
format: byte
type: string
binary:
description: None
format: binary
type: string
date:
description: None
format: date
type: string
dateTime:
description: None
format: date-time
type: string
password:
description: None
format: password
maxLength: 64
minLength: 10
type: string
callback:
description: None
type: string
required:
- byte
- double
- number
- pattern_without_delimiter
type: object
testJsonFormData_request:
properties:
param:
description: field1
type: string
param2:
description: field2
type: string
required:
- param
- param2
type: object
uploadFileWithRequiredFile_request:
properties:
additionalMetadata:
description: Additional data to pass to server
type: string
requiredFile:
description: file to upload
format: binary
type: string
required:
- requiredFile
type: object
securitySchemes:
petstore_auth:
flows:

View File

@@ -536,10 +536,10 @@ public interface PathHandlerInterface {
* </p>
* </li>
* </ul>
* <p><b>Response headers</b>: [CodegenProperty{openApiType='integer', baseName='X-Rate-Limit', complexType='null', getter='getxRateLimit', setter='setxRateLimit', description='calls per hour allowed by the user', dataType='Integer', datatypeWithEnum='Integer', dataFormat='int32', name='xRateLimit', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Rate-Limit;', baseType='Integer', containerType='null', title='null', unescapedDescription='calls per hour allowed by the user', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
* <p><b>Response headers</b>: [CodegenProperty{openApiType='integer', baseName='X-Rate-Limit', complexType='null', getter='getxRateLimit', setter='setxRateLimit', description='calls per hour allowed by the user', dataType='Integer', datatypeWithEnum='Integer', dataFormat='int32', name='xRateLimit', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Rate-Limit;', baseType='Integer', containerType='null', containerTypeMapped='null', title='null', unescapedDescription='calls per hour allowed by the user', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
"type" : "integer",
"format" : "int32"
}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=true, isModel=false, isContainer=false, isString=false, isNumeric=true, isInteger=true, isShort=true, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=false, isUuid=false, isUri=false, isEmail=false, isPassword=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isInnerEnum=false, isEnumRef=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, isNew=false, isOverridden=null, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XRateLimit', nameInSnakeCase='X_RATE_LIMIT', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, uniqueItemsBoolean=null, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, isVoid=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false, requiredVarsMap=null, ref=null, schemaIsFromAdditionalProperties=false, isBooleanSchemaTrue=false, isBooleanSchemaFalse=false, format=int32, dependentRequired=null, contains=null}, CodegenProperty{openApiType='string', baseName='X-Expires-After', complexType='Date', getter='getxExpiresAfter', setter='setxExpiresAfter', description='date in UTC when token expires', dataType='Date', datatypeWithEnum='Date', dataFormat='date-time', name='xExpiresAfter', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Expires-After;', baseType='Date', containerType='null', title='null', unescapedDescription='date in UTC when token expires', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=true, isModel=false, isContainer=false, isString=false, isNumeric=true, isInteger=true, isShort=true, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=false, isUuid=false, isUri=false, isEmail=false, isPassword=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isInnerEnum=false, isEnumRef=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, isNew=false, isOverridden=null, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XRateLimit', nameInSnakeCase='X_RATE_LIMIT', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, uniqueItemsBoolean=null, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, isVoid=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false, requiredVarsMap=null, ref=null, schemaIsFromAdditionalProperties=false, isBooleanSchemaTrue=false, isBooleanSchemaFalse=false, format=int32, dependentRequired=null, contains=null}, CodegenProperty{openApiType='string', baseName='X-Expires-After', complexType='Date', getter='getxExpiresAfter', setter='setxExpiresAfter', description='date in UTC when token expires', dataType='Date', datatypeWithEnum='Date', dataFormat='date-time', name='xExpiresAfter', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Expires-After;', baseType='Date', containerType='null', containerTypeMapped='null', title='null', unescapedDescription='date in UTC when token expires', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
"type" : "string",
"format" : "date-time"
}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=false, isModel=false, isContainer=false, isString=false, isNumeric=false, isInteger=false, isShort=false, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=true, isUuid=false, isUri=false, isEmail=false, isPassword=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isInnerEnum=false, isEnumRef=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, isNew=false, isOverridden=null, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XExpiresAfter', nameInSnakeCase='X_EXPIRES_AFTER', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, uniqueItemsBoolean=null, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, isVoid=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false, requiredVarsMap=null, ref=null, schemaIsFromAdditionalProperties=false, isBooleanSchemaTrue=false, isBooleanSchemaFalse=false, format=date-time, dependentRequired=null, contains=null}]</p>