forked from loafle/openapi-generator-original
[normalizer] fix schemas incorrectly skipped (#18297)
* fix circular reference check in normalizer * add new files * fix
This commit is contained in:
parent
f357be480e
commit
6d10e80916
@ -499,7 +499,7 @@ public class OpenAPINormalizer {
|
||||
}
|
||||
|
||||
if (StringUtils.isNotEmpty(schema.get$ref())) {
|
||||
// not need to process $ref
|
||||
// no need to process $ref
|
||||
return schema;
|
||||
}
|
||||
|
||||
@ -594,7 +594,7 @@ public class OpenAPINormalizer {
|
||||
}
|
||||
for (Map.Entry<String, Schema> propertiesEntry : properties.entrySet()) {
|
||||
Schema property = propertiesEntry.getValue();
|
||||
Schema newProperty = normalizeSchema(property, visitedSchemas);
|
||||
Schema newProperty = normalizeSchema(property, new HashSet<>());
|
||||
propertiesEntry.setValue(newProperty);
|
||||
}
|
||||
}
|
||||
|
@ -914,3 +914,33 @@ components:
|
||||
description: A list of "good output" node IDs in the prompt.
|
||||
items:
|
||||
type: string
|
||||
circular_reference_1:
|
||||
type: object
|
||||
properties:
|
||||
prop1:
|
||||
$ref: '#/components/schemas/circular_reference_2'
|
||||
circular_reference_2:
|
||||
type: object
|
||||
properties:
|
||||
prop1:
|
||||
$ref: '#/components/schemas/circular_reference_3'
|
||||
circular_reference_3:
|
||||
type: object
|
||||
properties:
|
||||
prop1:
|
||||
$ref: '#/components/schemas/circular_reference_1'
|
||||
array_of_same_ref:
|
||||
type: object
|
||||
properties:
|
||||
arrayFooOne:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Tag'
|
||||
arrayFooTwo:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Tag'
|
||||
arrayFooThree:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Tag'
|
||||
|
@ -8,8 +8,12 @@ build.sbt
|
||||
docs/Animal.md
|
||||
docs/AnyOfArray.md
|
||||
docs/AnyTypeTest.md
|
||||
docs/ArrayOfSameRef.md
|
||||
docs/Cat.md
|
||||
docs/Category.md
|
||||
docs/CircularReference1.md
|
||||
docs/CircularReference2.md
|
||||
docs/CircularReference3.md
|
||||
docs/Dog.md
|
||||
docs/FakeApi.md
|
||||
docs/ModelApiResponse.md
|
||||
@ -60,8 +64,12 @@ src/main/java/org/openapitools/client/model/AbstractOpenApiSchema.java
|
||||
src/main/java/org/openapitools/client/model/Animal.java
|
||||
src/main/java/org/openapitools/client/model/AnyOfArray.java
|
||||
src/main/java/org/openapitools/client/model/AnyTypeTest.java
|
||||
src/main/java/org/openapitools/client/model/ArrayOfSameRef.java
|
||||
src/main/java/org/openapitools/client/model/Cat.java
|
||||
src/main/java/org/openapitools/client/model/Category.java
|
||||
src/main/java/org/openapitools/client/model/CircularReference1.java
|
||||
src/main/java/org/openapitools/client/model/CircularReference2.java
|
||||
src/main/java/org/openapitools/client/model/CircularReference3.java
|
||||
src/main/java/org/openapitools/client/model/Dog.java
|
||||
src/main/java/org/openapitools/client/model/ModelApiResponse.java
|
||||
src/main/java/org/openapitools/client/model/OneOfStringOrInt.java
|
||||
|
@ -146,8 +146,12 @@ Class | Method | HTTP request | Description
|
||||
- [Animal](docs/Animal.md)
|
||||
- [AnyOfArray](docs/AnyOfArray.md)
|
||||
- [AnyTypeTest](docs/AnyTypeTest.md)
|
||||
- [ArrayOfSameRef](docs/ArrayOfSameRef.md)
|
||||
- [Cat](docs/Cat.md)
|
||||
- [Category](docs/Category.md)
|
||||
- [CircularReference1](docs/CircularReference1.md)
|
||||
- [CircularReference2](docs/CircularReference2.md)
|
||||
- [CircularReference3](docs/CircularReference3.md)
|
||||
- [Dog](docs/Dog.md)
|
||||
- [ModelApiResponse](docs/ModelApiResponse.md)
|
||||
- [OneOfStringOrInt](docs/OneOfStringOrInt.md)
|
||||
|
@ -1015,6 +1015,32 @@ components:
|
||||
maxItems: 5
|
||||
minItems: 3
|
||||
type: array
|
||||
circular_reference_1:
|
||||
properties:
|
||||
prop1:
|
||||
$ref: '#/components/schemas/circular_reference_2'
|
||||
circular_reference_2:
|
||||
properties:
|
||||
prop1:
|
||||
$ref: '#/components/schemas/circular_reference_3'
|
||||
circular_reference_3:
|
||||
properties:
|
||||
prop1:
|
||||
$ref: '#/components/schemas/circular_reference_1'
|
||||
array_of_same_ref:
|
||||
properties:
|
||||
arrayFooOne:
|
||||
items:
|
||||
$ref: '#/components/schemas/Tag'
|
||||
type: array
|
||||
arrayFooTwo:
|
||||
items:
|
||||
$ref: '#/components/schemas/Tag'
|
||||
type: array
|
||||
arrayFooThree:
|
||||
items:
|
||||
$ref: '#/components/schemas/Tag'
|
||||
type: array
|
||||
updatePetWithForm_request:
|
||||
properties:
|
||||
name:
|
||||
|
@ -0,0 +1,15 @@
|
||||
|
||||
|
||||
# ArrayOfSameRef
|
||||
|
||||
|
||||
## Properties
|
||||
|
||||
| Name | Type | Description | Notes |
|
||||
|------------ | ------------- | ------------- | -------------|
|
||||
|**arrayFooOne** | [**List<Tag>**](Tag.md) | | [optional] |
|
||||
|**arrayFooTwo** | [**List<Tag>**](Tag.md) | | [optional] |
|
||||
|**arrayFooThree** | [**List<Tag>**](Tag.md) | | [optional] |
|
||||
|
||||
|
||||
|
@ -0,0 +1,13 @@
|
||||
|
||||
|
||||
# CircularReference1
|
||||
|
||||
|
||||
## Properties
|
||||
|
||||
| Name | Type | Description | Notes |
|
||||
|------------ | ------------- | ------------- | -------------|
|
||||
|**prop1** | [**CircularReference2**](CircularReference2.md) | | [optional] |
|
||||
|
||||
|
||||
|
@ -0,0 +1,13 @@
|
||||
|
||||
|
||||
# CircularReference2
|
||||
|
||||
|
||||
## Properties
|
||||
|
||||
| Name | Type | Description | Notes |
|
||||
|------------ | ------------- | ------------- | -------------|
|
||||
|**prop1** | [**CircularReference3**](CircularReference3.md) | | [optional] |
|
||||
|
||||
|
||||
|
@ -0,0 +1,13 @@
|
||||
|
||||
|
||||
# CircularReference3
|
||||
|
||||
|
||||
## Properties
|
||||
|
||||
| Name | Type | Description | Notes |
|
||||
|------------ | ------------- | ------------- | -------------|
|
||||
|**prop1** | [**CircularReference1**](CircularReference1.md) | | [optional] |
|
||||
|
||||
|
||||
|
@ -131,8 +131,12 @@ public class JSON {
|
||||
gsonBuilder.registerTypeAdapter(byte[].class, byteArrayAdapter);
|
||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.AnyOfArray.CustomTypeAdapterFactory());
|
||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.AnyTypeTest.CustomTypeAdapterFactory());
|
||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.ArrayOfSameRef.CustomTypeAdapterFactory());
|
||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.Cat.CustomTypeAdapterFactory());
|
||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.Category.CustomTypeAdapterFactory());
|
||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.CircularReference1.CustomTypeAdapterFactory());
|
||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.CircularReference2.CustomTypeAdapterFactory());
|
||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.CircularReference3.CustomTypeAdapterFactory());
|
||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.Dog.CustomTypeAdapterFactory());
|
||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.ModelApiResponse.CustomTypeAdapterFactory());
|
||||
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.OneOfStringOrInt.CustomTypeAdapterFactory());
|
||||
|
@ -0,0 +1,405 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
package org.openapitools.client.model;
|
||||
|
||||
import java.util.Objects;
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.annotations.JsonAdapter;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import org.openapitools.client.model.Tag;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonDeserializationContext;
|
||||
import com.google.gson.JsonDeserializer;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.google.gson.TypeAdapterFactory;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.openapitools.client.JSON;
|
||||
|
||||
/**
|
||||
* ArrayOfSameRef
|
||||
*/
|
||||
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
|
||||
public class ArrayOfSameRef {
|
||||
public static final String SERIALIZED_NAME_ARRAY_FOO_ONE = "arrayFooOne";
|
||||
@SerializedName(SERIALIZED_NAME_ARRAY_FOO_ONE)
|
||||
private List<Tag> arrayFooOne = new ArrayList<>();
|
||||
|
||||
public static final String SERIALIZED_NAME_ARRAY_FOO_TWO = "arrayFooTwo";
|
||||
@SerializedName(SERIALIZED_NAME_ARRAY_FOO_TWO)
|
||||
private List<Tag> arrayFooTwo = new ArrayList<>();
|
||||
|
||||
public static final String SERIALIZED_NAME_ARRAY_FOO_THREE = "arrayFooThree";
|
||||
@SerializedName(SERIALIZED_NAME_ARRAY_FOO_THREE)
|
||||
private List<Tag> arrayFooThree = new ArrayList<>();
|
||||
|
||||
public ArrayOfSameRef() {
|
||||
}
|
||||
|
||||
public ArrayOfSameRef arrayFooOne(List<Tag> arrayFooOne) {
|
||||
this.arrayFooOne = arrayFooOne;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArrayOfSameRef addArrayFooOneItem(Tag arrayFooOneItem) {
|
||||
if (this.arrayFooOne == null) {
|
||||
this.arrayFooOne = new ArrayList<>();
|
||||
}
|
||||
this.arrayFooOne.add(arrayFooOneItem);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get arrayFooOne
|
||||
* @return arrayFooOne
|
||||
**/
|
||||
@javax.annotation.Nullable
|
||||
public List<Tag> getArrayFooOne() {
|
||||
return arrayFooOne;
|
||||
}
|
||||
|
||||
public void setArrayFooOne(List<Tag> arrayFooOne) {
|
||||
this.arrayFooOne = arrayFooOne;
|
||||
}
|
||||
|
||||
|
||||
public ArrayOfSameRef arrayFooTwo(List<Tag> arrayFooTwo) {
|
||||
this.arrayFooTwo = arrayFooTwo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArrayOfSameRef addArrayFooTwoItem(Tag arrayFooTwoItem) {
|
||||
if (this.arrayFooTwo == null) {
|
||||
this.arrayFooTwo = new ArrayList<>();
|
||||
}
|
||||
this.arrayFooTwo.add(arrayFooTwoItem);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get arrayFooTwo
|
||||
* @return arrayFooTwo
|
||||
**/
|
||||
@javax.annotation.Nullable
|
||||
public List<Tag> getArrayFooTwo() {
|
||||
return arrayFooTwo;
|
||||
}
|
||||
|
||||
public void setArrayFooTwo(List<Tag> arrayFooTwo) {
|
||||
this.arrayFooTwo = arrayFooTwo;
|
||||
}
|
||||
|
||||
|
||||
public ArrayOfSameRef arrayFooThree(List<Tag> arrayFooThree) {
|
||||
this.arrayFooThree = arrayFooThree;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArrayOfSameRef addArrayFooThreeItem(Tag arrayFooThreeItem) {
|
||||
if (this.arrayFooThree == null) {
|
||||
this.arrayFooThree = new ArrayList<>();
|
||||
}
|
||||
this.arrayFooThree.add(arrayFooThreeItem);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get arrayFooThree
|
||||
* @return arrayFooThree
|
||||
**/
|
||||
@javax.annotation.Nullable
|
||||
public List<Tag> getArrayFooThree() {
|
||||
return arrayFooThree;
|
||||
}
|
||||
|
||||
public void setArrayFooThree(List<Tag> arrayFooThree) {
|
||||
this.arrayFooThree = arrayFooThree;
|
||||
}
|
||||
|
||||
/**
|
||||
* A container for additional, undeclared properties.
|
||||
* This is a holder for any undeclared properties as specified with
|
||||
* the 'additionalProperties' keyword in the OAS document.
|
||||
*/
|
||||
private Map<String, Object> additionalProperties;
|
||||
|
||||
/**
|
||||
* Set the additional (undeclared) property with the specified name and value.
|
||||
* If the property does not already exist, create it otherwise replace it.
|
||||
*
|
||||
* @param key name of the property
|
||||
* @param value value of the property
|
||||
* @return the ArrayOfSameRef instance itself
|
||||
*/
|
||||
public ArrayOfSameRef putAdditionalProperty(String key, Object value) {
|
||||
if (this.additionalProperties == null) {
|
||||
this.additionalProperties = new HashMap<String, Object>();
|
||||
}
|
||||
this.additionalProperties.put(key, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the additional (undeclared) property.
|
||||
*
|
||||
* @return a map of objects
|
||||
*/
|
||||
public Map<String, Object> getAdditionalProperties() {
|
||||
return additionalProperties;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the additional (undeclared) property with the specified name.
|
||||
*
|
||||
* @param key name of the property
|
||||
* @return an object
|
||||
*/
|
||||
public Object getAdditionalProperty(String key) {
|
||||
if (this.additionalProperties == null) {
|
||||
return null;
|
||||
}
|
||||
return this.additionalProperties.get(key);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
ArrayOfSameRef arrayOfSameRef = (ArrayOfSameRef) o;
|
||||
return Objects.equals(this.arrayFooOne, arrayOfSameRef.arrayFooOne) &&
|
||||
Objects.equals(this.arrayFooTwo, arrayOfSameRef.arrayFooTwo) &&
|
||||
Objects.equals(this.arrayFooThree, arrayOfSameRef.arrayFooThree)&&
|
||||
Objects.equals(this.additionalProperties, arrayOfSameRef.additionalProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(arrayFooOne, arrayFooTwo, arrayFooThree, additionalProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class ArrayOfSameRef {\n");
|
||||
sb.append(" arrayFooOne: ").append(toIndentedString(arrayFooOne)).append("\n");
|
||||
sb.append(" arrayFooTwo: ").append(toIndentedString(arrayFooTwo)).append("\n");
|
||||
sb.append(" arrayFooThree: ").append(toIndentedString(arrayFooThree)).append("\n");
|
||||
sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n");
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given object to string with each line indented by 4 spaces
|
||||
* (except the first line).
|
||||
*/
|
||||
private String toIndentedString(Object o) {
|
||||
if (o == null) {
|
||||
return "null";
|
||||
}
|
||||
return o.toString().replace("\n", "\n ");
|
||||
}
|
||||
|
||||
|
||||
public static HashSet<String> openapiFields;
|
||||
public static HashSet<String> openapiRequiredFields;
|
||||
|
||||
static {
|
||||
// a set of all properties/fields (JSON key names)
|
||||
openapiFields = new HashSet<String>();
|
||||
openapiFields.add("arrayFooOne");
|
||||
openapiFields.add("arrayFooTwo");
|
||||
openapiFields.add("arrayFooThree");
|
||||
|
||||
// a set of required properties/fields (JSON key names)
|
||||
openapiRequiredFields = new HashSet<String>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates the JSON Element and throws an exception if issues found
|
||||
*
|
||||
* @param jsonElement JSON Element
|
||||
* @throws IOException if the JSON Element is invalid with respect to ArrayOfSameRef
|
||||
*/
|
||||
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
|
||||
if (jsonElement == null) {
|
||||
if (!ArrayOfSameRef.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
|
||||
throw new IllegalArgumentException(String.format("The required field(s) %s in ArrayOfSameRef is not found in the empty JSON string", ArrayOfSameRef.openapiRequiredFields.toString()));
|
||||
}
|
||||
}
|
||||
JsonObject jsonObj = jsonElement.getAsJsonObject();
|
||||
if (jsonObj.get("arrayFooOne") != null && !jsonObj.get("arrayFooOne").isJsonNull()) {
|
||||
JsonArray jsonArrayarrayFooOne = jsonObj.getAsJsonArray("arrayFooOne");
|
||||
if (jsonArrayarrayFooOne != null) {
|
||||
// ensure the json data is an array
|
||||
if (!jsonObj.get("arrayFooOne").isJsonArray()) {
|
||||
throw new IllegalArgumentException(String.format("Expected the field `arrayFooOne` to be an array in the JSON string but got `%s`", jsonObj.get("arrayFooOne").toString()));
|
||||
}
|
||||
|
||||
// validate the optional field `arrayFooOne` (array)
|
||||
for (int i = 0; i < jsonArrayarrayFooOne.size(); i++) {
|
||||
Tag.validateJsonElement(jsonArrayarrayFooOne.get(i));
|
||||
};
|
||||
}
|
||||
}
|
||||
if (jsonObj.get("arrayFooTwo") != null && !jsonObj.get("arrayFooTwo").isJsonNull()) {
|
||||
JsonArray jsonArrayarrayFooTwo = jsonObj.getAsJsonArray("arrayFooTwo");
|
||||
if (jsonArrayarrayFooTwo != null) {
|
||||
// ensure the json data is an array
|
||||
if (!jsonObj.get("arrayFooTwo").isJsonArray()) {
|
||||
throw new IllegalArgumentException(String.format("Expected the field `arrayFooTwo` to be an array in the JSON string but got `%s`", jsonObj.get("arrayFooTwo").toString()));
|
||||
}
|
||||
|
||||
// validate the optional field `arrayFooTwo` (array)
|
||||
for (int i = 0; i < jsonArrayarrayFooTwo.size(); i++) {
|
||||
Tag.validateJsonElement(jsonArrayarrayFooTwo.get(i));
|
||||
};
|
||||
}
|
||||
}
|
||||
if (jsonObj.get("arrayFooThree") != null && !jsonObj.get("arrayFooThree").isJsonNull()) {
|
||||
JsonArray jsonArrayarrayFooThree = jsonObj.getAsJsonArray("arrayFooThree");
|
||||
if (jsonArrayarrayFooThree != null) {
|
||||
// ensure the json data is an array
|
||||
if (!jsonObj.get("arrayFooThree").isJsonArray()) {
|
||||
throw new IllegalArgumentException(String.format("Expected the field `arrayFooThree` to be an array in the JSON string but got `%s`", jsonObj.get("arrayFooThree").toString()));
|
||||
}
|
||||
|
||||
// validate the optional field `arrayFooThree` (array)
|
||||
for (int i = 0; i < jsonArrayarrayFooThree.size(); i++) {
|
||||
Tag.validateJsonElement(jsonArrayarrayFooThree.get(i));
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
||||
if (!ArrayOfSameRef.class.isAssignableFrom(type.getRawType())) {
|
||||
return null; // this class only serializes 'ArrayOfSameRef' and its subtypes
|
||||
}
|
||||
final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
|
||||
final TypeAdapter<ArrayOfSameRef> thisAdapter
|
||||
= gson.getDelegateAdapter(this, TypeToken.get(ArrayOfSameRef.class));
|
||||
|
||||
return (TypeAdapter<T>) new TypeAdapter<ArrayOfSameRef>() {
|
||||
@Override
|
||||
public void write(JsonWriter out, ArrayOfSameRef value) throws IOException {
|
||||
JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject();
|
||||
obj.remove("additionalProperties");
|
||||
// serialize additional properties
|
||||
if (value.getAdditionalProperties() != null) {
|
||||
for (Map.Entry<String, Object> entry : value.getAdditionalProperties().entrySet()) {
|
||||
if (entry.getValue() instanceof String)
|
||||
obj.addProperty(entry.getKey(), (String) entry.getValue());
|
||||
else if (entry.getValue() instanceof Number)
|
||||
obj.addProperty(entry.getKey(), (Number) entry.getValue());
|
||||
else if (entry.getValue() instanceof Boolean)
|
||||
obj.addProperty(entry.getKey(), (Boolean) entry.getValue());
|
||||
else if (entry.getValue() instanceof Character)
|
||||
obj.addProperty(entry.getKey(), (Character) entry.getValue());
|
||||
else {
|
||||
JsonElement jsonElement = gson.toJsonTree(entry.getValue());
|
||||
if (jsonElement.isJsonArray()) {
|
||||
obj.add(entry.getKey(), jsonElement.getAsJsonArray());
|
||||
} else {
|
||||
obj.add(entry.getKey(), jsonElement.getAsJsonObject());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
elementAdapter.write(out, obj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayOfSameRef read(JsonReader in) throws IOException {
|
||||
JsonElement jsonElement = elementAdapter.read(in);
|
||||
validateJsonElement(jsonElement);
|
||||
JsonObject jsonObj = jsonElement.getAsJsonObject();
|
||||
// store additional fields in the deserialized instance
|
||||
ArrayOfSameRef instance = thisAdapter.fromJsonTree(jsonObj);
|
||||
for (Map.Entry<String, JsonElement> entry : jsonObj.entrySet()) {
|
||||
if (!openapiFields.contains(entry.getKey())) {
|
||||
if (entry.getValue().isJsonPrimitive()) { // primitive type
|
||||
if (entry.getValue().getAsJsonPrimitive().isString())
|
||||
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString());
|
||||
else if (entry.getValue().getAsJsonPrimitive().isNumber())
|
||||
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber());
|
||||
else if (entry.getValue().getAsJsonPrimitive().isBoolean())
|
||||
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean());
|
||||
else
|
||||
throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString()));
|
||||
} else if (entry.getValue().isJsonArray()) {
|
||||
instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class));
|
||||
} else { // JSON object
|
||||
instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class));
|
||||
}
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
}.nullSafe();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of ArrayOfSameRef given an JSON string
|
||||
*
|
||||
* @param jsonString JSON string
|
||||
* @return An instance of ArrayOfSameRef
|
||||
* @throws IOException if the JSON string is invalid with respect to ArrayOfSameRef
|
||||
*/
|
||||
public static ArrayOfSameRef fromJson(String jsonString) throws IOException {
|
||||
return JSON.getGson().fromJson(jsonString, ArrayOfSameRef.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert an instance of ArrayOfSameRef to an JSON string
|
||||
*
|
||||
* @return JSON string
|
||||
*/
|
||||
public String toJson() {
|
||||
return JSON.getGson().toJson(this);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,289 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
package org.openapitools.client.model;
|
||||
|
||||
import java.util.Objects;
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.annotations.JsonAdapter;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import org.openapitools.client.model.CircularReference2;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonDeserializationContext;
|
||||
import com.google.gson.JsonDeserializer;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.google.gson.TypeAdapterFactory;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.openapitools.client.JSON;
|
||||
|
||||
/**
|
||||
* CircularReference1
|
||||
*/
|
||||
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
|
||||
public class CircularReference1 {
|
||||
public static final String SERIALIZED_NAME_PROP1 = "prop1";
|
||||
@SerializedName(SERIALIZED_NAME_PROP1)
|
||||
private CircularReference2 prop1;
|
||||
|
||||
public CircularReference1() {
|
||||
}
|
||||
|
||||
public CircularReference1 prop1(CircularReference2 prop1) {
|
||||
this.prop1 = prop1;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get prop1
|
||||
* @return prop1
|
||||
**/
|
||||
@javax.annotation.Nullable
|
||||
public CircularReference2 getProp1() {
|
||||
return prop1;
|
||||
}
|
||||
|
||||
public void setProp1(CircularReference2 prop1) {
|
||||
this.prop1 = prop1;
|
||||
}
|
||||
|
||||
/**
|
||||
* A container for additional, undeclared properties.
|
||||
* This is a holder for any undeclared properties as specified with
|
||||
* the 'additionalProperties' keyword in the OAS document.
|
||||
*/
|
||||
private Map<String, Object> additionalProperties;
|
||||
|
||||
/**
|
||||
* Set the additional (undeclared) property with the specified name and value.
|
||||
* If the property does not already exist, create it otherwise replace it.
|
||||
*
|
||||
* @param key name of the property
|
||||
* @param value value of the property
|
||||
* @return the CircularReference1 instance itself
|
||||
*/
|
||||
public CircularReference1 putAdditionalProperty(String key, Object value) {
|
||||
if (this.additionalProperties == null) {
|
||||
this.additionalProperties = new HashMap<String, Object>();
|
||||
}
|
||||
this.additionalProperties.put(key, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the additional (undeclared) property.
|
||||
*
|
||||
* @return a map of objects
|
||||
*/
|
||||
public Map<String, Object> getAdditionalProperties() {
|
||||
return additionalProperties;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the additional (undeclared) property with the specified name.
|
||||
*
|
||||
* @param key name of the property
|
||||
* @return an object
|
||||
*/
|
||||
public Object getAdditionalProperty(String key) {
|
||||
if (this.additionalProperties == null) {
|
||||
return null;
|
||||
}
|
||||
return this.additionalProperties.get(key);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
CircularReference1 circularReference1 = (CircularReference1) o;
|
||||
return Objects.equals(this.prop1, circularReference1.prop1)&&
|
||||
Objects.equals(this.additionalProperties, circularReference1.additionalProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(prop1, additionalProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class CircularReference1 {\n");
|
||||
sb.append(" prop1: ").append(toIndentedString(prop1)).append("\n");
|
||||
sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n");
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given object to string with each line indented by 4 spaces
|
||||
* (except the first line).
|
||||
*/
|
||||
private String toIndentedString(Object o) {
|
||||
if (o == null) {
|
||||
return "null";
|
||||
}
|
||||
return o.toString().replace("\n", "\n ");
|
||||
}
|
||||
|
||||
|
||||
public static HashSet<String> openapiFields;
|
||||
public static HashSet<String> openapiRequiredFields;
|
||||
|
||||
static {
|
||||
// a set of all properties/fields (JSON key names)
|
||||
openapiFields = new HashSet<String>();
|
||||
openapiFields.add("prop1");
|
||||
|
||||
// a set of required properties/fields (JSON key names)
|
||||
openapiRequiredFields = new HashSet<String>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates the JSON Element and throws an exception if issues found
|
||||
*
|
||||
* @param jsonElement JSON Element
|
||||
* @throws IOException if the JSON Element is invalid with respect to CircularReference1
|
||||
*/
|
||||
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
|
||||
if (jsonElement == null) {
|
||||
if (!CircularReference1.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
|
||||
throw new IllegalArgumentException(String.format("The required field(s) %s in CircularReference1 is not found in the empty JSON string", CircularReference1.openapiRequiredFields.toString()));
|
||||
}
|
||||
}
|
||||
JsonObject jsonObj = jsonElement.getAsJsonObject();
|
||||
// validate the optional field `prop1`
|
||||
if (jsonObj.get("prop1") != null && !jsonObj.get("prop1").isJsonNull()) {
|
||||
CircularReference2.validateJsonElement(jsonObj.get("prop1"));
|
||||
}
|
||||
}
|
||||
|
||||
public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
||||
if (!CircularReference1.class.isAssignableFrom(type.getRawType())) {
|
||||
return null; // this class only serializes 'CircularReference1' and its subtypes
|
||||
}
|
||||
final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
|
||||
final TypeAdapter<CircularReference1> thisAdapter
|
||||
= gson.getDelegateAdapter(this, TypeToken.get(CircularReference1.class));
|
||||
|
||||
return (TypeAdapter<T>) new TypeAdapter<CircularReference1>() {
|
||||
@Override
|
||||
public void write(JsonWriter out, CircularReference1 value) throws IOException {
|
||||
JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject();
|
||||
obj.remove("additionalProperties");
|
||||
// serialize additional properties
|
||||
if (value.getAdditionalProperties() != null) {
|
||||
for (Map.Entry<String, Object> entry : value.getAdditionalProperties().entrySet()) {
|
||||
if (entry.getValue() instanceof String)
|
||||
obj.addProperty(entry.getKey(), (String) entry.getValue());
|
||||
else if (entry.getValue() instanceof Number)
|
||||
obj.addProperty(entry.getKey(), (Number) entry.getValue());
|
||||
else if (entry.getValue() instanceof Boolean)
|
||||
obj.addProperty(entry.getKey(), (Boolean) entry.getValue());
|
||||
else if (entry.getValue() instanceof Character)
|
||||
obj.addProperty(entry.getKey(), (Character) entry.getValue());
|
||||
else {
|
||||
JsonElement jsonElement = gson.toJsonTree(entry.getValue());
|
||||
if (jsonElement.isJsonArray()) {
|
||||
obj.add(entry.getKey(), jsonElement.getAsJsonArray());
|
||||
} else {
|
||||
obj.add(entry.getKey(), jsonElement.getAsJsonObject());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
elementAdapter.write(out, obj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CircularReference1 read(JsonReader in) throws IOException {
|
||||
JsonElement jsonElement = elementAdapter.read(in);
|
||||
validateJsonElement(jsonElement);
|
||||
JsonObject jsonObj = jsonElement.getAsJsonObject();
|
||||
// store additional fields in the deserialized instance
|
||||
CircularReference1 instance = thisAdapter.fromJsonTree(jsonObj);
|
||||
for (Map.Entry<String, JsonElement> entry : jsonObj.entrySet()) {
|
||||
if (!openapiFields.contains(entry.getKey())) {
|
||||
if (entry.getValue().isJsonPrimitive()) { // primitive type
|
||||
if (entry.getValue().getAsJsonPrimitive().isString())
|
||||
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString());
|
||||
else if (entry.getValue().getAsJsonPrimitive().isNumber())
|
||||
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber());
|
||||
else if (entry.getValue().getAsJsonPrimitive().isBoolean())
|
||||
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean());
|
||||
else
|
||||
throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString()));
|
||||
} else if (entry.getValue().isJsonArray()) {
|
||||
instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class));
|
||||
} else { // JSON object
|
||||
instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class));
|
||||
}
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
}.nullSafe();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of CircularReference1 given an JSON string
|
||||
*
|
||||
* @param jsonString JSON string
|
||||
* @return An instance of CircularReference1
|
||||
* @throws IOException if the JSON string is invalid with respect to CircularReference1
|
||||
*/
|
||||
public static CircularReference1 fromJson(String jsonString) throws IOException {
|
||||
return JSON.getGson().fromJson(jsonString, CircularReference1.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert an instance of CircularReference1 to an JSON string
|
||||
*
|
||||
* @return JSON string
|
||||
*/
|
||||
public String toJson() {
|
||||
return JSON.getGson().toJson(this);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,289 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
package org.openapitools.client.model;
|
||||
|
||||
import java.util.Objects;
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.annotations.JsonAdapter;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import org.openapitools.client.model.CircularReference3;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonDeserializationContext;
|
||||
import com.google.gson.JsonDeserializer;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.google.gson.TypeAdapterFactory;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.openapitools.client.JSON;
|
||||
|
||||
/**
|
||||
* CircularReference2
|
||||
*/
|
||||
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
|
||||
public class CircularReference2 {
|
||||
public static final String SERIALIZED_NAME_PROP1 = "prop1";
|
||||
@SerializedName(SERIALIZED_NAME_PROP1)
|
||||
private CircularReference3 prop1;
|
||||
|
||||
public CircularReference2() {
|
||||
}
|
||||
|
||||
public CircularReference2 prop1(CircularReference3 prop1) {
|
||||
this.prop1 = prop1;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get prop1
|
||||
* @return prop1
|
||||
**/
|
||||
@javax.annotation.Nullable
|
||||
public CircularReference3 getProp1() {
|
||||
return prop1;
|
||||
}
|
||||
|
||||
public void setProp1(CircularReference3 prop1) {
|
||||
this.prop1 = prop1;
|
||||
}
|
||||
|
||||
/**
|
||||
* A container for additional, undeclared properties.
|
||||
* This is a holder for any undeclared properties as specified with
|
||||
* the 'additionalProperties' keyword in the OAS document.
|
||||
*/
|
||||
private Map<String, Object> additionalProperties;
|
||||
|
||||
/**
|
||||
* Set the additional (undeclared) property with the specified name and value.
|
||||
* If the property does not already exist, create it otherwise replace it.
|
||||
*
|
||||
* @param key name of the property
|
||||
* @param value value of the property
|
||||
* @return the CircularReference2 instance itself
|
||||
*/
|
||||
public CircularReference2 putAdditionalProperty(String key, Object value) {
|
||||
if (this.additionalProperties == null) {
|
||||
this.additionalProperties = new HashMap<String, Object>();
|
||||
}
|
||||
this.additionalProperties.put(key, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the additional (undeclared) property.
|
||||
*
|
||||
* @return a map of objects
|
||||
*/
|
||||
public Map<String, Object> getAdditionalProperties() {
|
||||
return additionalProperties;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the additional (undeclared) property with the specified name.
|
||||
*
|
||||
* @param key name of the property
|
||||
* @return an object
|
||||
*/
|
||||
public Object getAdditionalProperty(String key) {
|
||||
if (this.additionalProperties == null) {
|
||||
return null;
|
||||
}
|
||||
return this.additionalProperties.get(key);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
CircularReference2 circularReference2 = (CircularReference2) o;
|
||||
return Objects.equals(this.prop1, circularReference2.prop1)&&
|
||||
Objects.equals(this.additionalProperties, circularReference2.additionalProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(prop1, additionalProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class CircularReference2 {\n");
|
||||
sb.append(" prop1: ").append(toIndentedString(prop1)).append("\n");
|
||||
sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n");
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given object to string with each line indented by 4 spaces
|
||||
* (except the first line).
|
||||
*/
|
||||
private String toIndentedString(Object o) {
|
||||
if (o == null) {
|
||||
return "null";
|
||||
}
|
||||
return o.toString().replace("\n", "\n ");
|
||||
}
|
||||
|
||||
|
||||
public static HashSet<String> openapiFields;
|
||||
public static HashSet<String> openapiRequiredFields;
|
||||
|
||||
static {
|
||||
// a set of all properties/fields (JSON key names)
|
||||
openapiFields = new HashSet<String>();
|
||||
openapiFields.add("prop1");
|
||||
|
||||
// a set of required properties/fields (JSON key names)
|
||||
openapiRequiredFields = new HashSet<String>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates the JSON Element and throws an exception if issues found
|
||||
*
|
||||
* @param jsonElement JSON Element
|
||||
* @throws IOException if the JSON Element is invalid with respect to CircularReference2
|
||||
*/
|
||||
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
|
||||
if (jsonElement == null) {
|
||||
if (!CircularReference2.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
|
||||
throw new IllegalArgumentException(String.format("The required field(s) %s in CircularReference2 is not found in the empty JSON string", CircularReference2.openapiRequiredFields.toString()));
|
||||
}
|
||||
}
|
||||
JsonObject jsonObj = jsonElement.getAsJsonObject();
|
||||
// validate the optional field `prop1`
|
||||
if (jsonObj.get("prop1") != null && !jsonObj.get("prop1").isJsonNull()) {
|
||||
CircularReference3.validateJsonElement(jsonObj.get("prop1"));
|
||||
}
|
||||
}
|
||||
|
||||
public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
||||
if (!CircularReference2.class.isAssignableFrom(type.getRawType())) {
|
||||
return null; // this class only serializes 'CircularReference2' and its subtypes
|
||||
}
|
||||
final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
|
||||
final TypeAdapter<CircularReference2> thisAdapter
|
||||
= gson.getDelegateAdapter(this, TypeToken.get(CircularReference2.class));
|
||||
|
||||
return (TypeAdapter<T>) new TypeAdapter<CircularReference2>() {
|
||||
@Override
|
||||
public void write(JsonWriter out, CircularReference2 value) throws IOException {
|
||||
JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject();
|
||||
obj.remove("additionalProperties");
|
||||
// serialize additional properties
|
||||
if (value.getAdditionalProperties() != null) {
|
||||
for (Map.Entry<String, Object> entry : value.getAdditionalProperties().entrySet()) {
|
||||
if (entry.getValue() instanceof String)
|
||||
obj.addProperty(entry.getKey(), (String) entry.getValue());
|
||||
else if (entry.getValue() instanceof Number)
|
||||
obj.addProperty(entry.getKey(), (Number) entry.getValue());
|
||||
else if (entry.getValue() instanceof Boolean)
|
||||
obj.addProperty(entry.getKey(), (Boolean) entry.getValue());
|
||||
else if (entry.getValue() instanceof Character)
|
||||
obj.addProperty(entry.getKey(), (Character) entry.getValue());
|
||||
else {
|
||||
JsonElement jsonElement = gson.toJsonTree(entry.getValue());
|
||||
if (jsonElement.isJsonArray()) {
|
||||
obj.add(entry.getKey(), jsonElement.getAsJsonArray());
|
||||
} else {
|
||||
obj.add(entry.getKey(), jsonElement.getAsJsonObject());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
elementAdapter.write(out, obj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CircularReference2 read(JsonReader in) throws IOException {
|
||||
JsonElement jsonElement = elementAdapter.read(in);
|
||||
validateJsonElement(jsonElement);
|
||||
JsonObject jsonObj = jsonElement.getAsJsonObject();
|
||||
// store additional fields in the deserialized instance
|
||||
CircularReference2 instance = thisAdapter.fromJsonTree(jsonObj);
|
||||
for (Map.Entry<String, JsonElement> entry : jsonObj.entrySet()) {
|
||||
if (!openapiFields.contains(entry.getKey())) {
|
||||
if (entry.getValue().isJsonPrimitive()) { // primitive type
|
||||
if (entry.getValue().getAsJsonPrimitive().isString())
|
||||
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString());
|
||||
else if (entry.getValue().getAsJsonPrimitive().isNumber())
|
||||
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber());
|
||||
else if (entry.getValue().getAsJsonPrimitive().isBoolean())
|
||||
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean());
|
||||
else
|
||||
throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString()));
|
||||
} else if (entry.getValue().isJsonArray()) {
|
||||
instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class));
|
||||
} else { // JSON object
|
||||
instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class));
|
||||
}
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
}.nullSafe();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of CircularReference2 given an JSON string
|
||||
*
|
||||
* @param jsonString JSON string
|
||||
* @return An instance of CircularReference2
|
||||
* @throws IOException if the JSON string is invalid with respect to CircularReference2
|
||||
*/
|
||||
public static CircularReference2 fromJson(String jsonString) throws IOException {
|
||||
return JSON.getGson().fromJson(jsonString, CircularReference2.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert an instance of CircularReference2 to an JSON string
|
||||
*
|
||||
* @return JSON string
|
||||
*/
|
||||
public String toJson() {
|
||||
return JSON.getGson().toJson(this);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,289 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
package org.openapitools.client.model;
|
||||
|
||||
import java.util.Objects;
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.annotations.JsonAdapter;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import org.openapitools.client.model.CircularReference1;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonDeserializationContext;
|
||||
import com.google.gson.JsonDeserializer;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.google.gson.TypeAdapterFactory;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.openapitools.client.JSON;
|
||||
|
||||
/**
|
||||
* CircularReference3
|
||||
*/
|
||||
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.5.0-SNAPSHOT")
|
||||
public class CircularReference3 {
|
||||
public static final String SERIALIZED_NAME_PROP1 = "prop1";
|
||||
@SerializedName(SERIALIZED_NAME_PROP1)
|
||||
private CircularReference1 prop1;
|
||||
|
||||
public CircularReference3() {
|
||||
}
|
||||
|
||||
public CircularReference3 prop1(CircularReference1 prop1) {
|
||||
this.prop1 = prop1;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get prop1
|
||||
* @return prop1
|
||||
**/
|
||||
@javax.annotation.Nullable
|
||||
public CircularReference1 getProp1() {
|
||||
return prop1;
|
||||
}
|
||||
|
||||
public void setProp1(CircularReference1 prop1) {
|
||||
this.prop1 = prop1;
|
||||
}
|
||||
|
||||
/**
|
||||
* A container for additional, undeclared properties.
|
||||
* This is a holder for any undeclared properties as specified with
|
||||
* the 'additionalProperties' keyword in the OAS document.
|
||||
*/
|
||||
private Map<String, Object> additionalProperties;
|
||||
|
||||
/**
|
||||
* Set the additional (undeclared) property with the specified name and value.
|
||||
* If the property does not already exist, create it otherwise replace it.
|
||||
*
|
||||
* @param key name of the property
|
||||
* @param value value of the property
|
||||
* @return the CircularReference3 instance itself
|
||||
*/
|
||||
public CircularReference3 putAdditionalProperty(String key, Object value) {
|
||||
if (this.additionalProperties == null) {
|
||||
this.additionalProperties = new HashMap<String, Object>();
|
||||
}
|
||||
this.additionalProperties.put(key, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the additional (undeclared) property.
|
||||
*
|
||||
* @return a map of objects
|
||||
*/
|
||||
public Map<String, Object> getAdditionalProperties() {
|
||||
return additionalProperties;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the additional (undeclared) property with the specified name.
|
||||
*
|
||||
* @param key name of the property
|
||||
* @return an object
|
||||
*/
|
||||
public Object getAdditionalProperty(String key) {
|
||||
if (this.additionalProperties == null) {
|
||||
return null;
|
||||
}
|
||||
return this.additionalProperties.get(key);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
CircularReference3 circularReference3 = (CircularReference3) o;
|
||||
return Objects.equals(this.prop1, circularReference3.prop1)&&
|
||||
Objects.equals(this.additionalProperties, circularReference3.additionalProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(prop1, additionalProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("class CircularReference3 {\n");
|
||||
sb.append(" prop1: ").append(toIndentedString(prop1)).append("\n");
|
||||
sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n");
|
||||
sb.append("}");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the given object to string with each line indented by 4 spaces
|
||||
* (except the first line).
|
||||
*/
|
||||
private String toIndentedString(Object o) {
|
||||
if (o == null) {
|
||||
return "null";
|
||||
}
|
||||
return o.toString().replace("\n", "\n ");
|
||||
}
|
||||
|
||||
|
||||
public static HashSet<String> openapiFields;
|
||||
public static HashSet<String> openapiRequiredFields;
|
||||
|
||||
static {
|
||||
// a set of all properties/fields (JSON key names)
|
||||
openapiFields = new HashSet<String>();
|
||||
openapiFields.add("prop1");
|
||||
|
||||
// a set of required properties/fields (JSON key names)
|
||||
openapiRequiredFields = new HashSet<String>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates the JSON Element and throws an exception if issues found
|
||||
*
|
||||
* @param jsonElement JSON Element
|
||||
* @throws IOException if the JSON Element is invalid with respect to CircularReference3
|
||||
*/
|
||||
public static void validateJsonElement(JsonElement jsonElement) throws IOException {
|
||||
if (jsonElement == null) {
|
||||
if (!CircularReference3.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null
|
||||
throw new IllegalArgumentException(String.format("The required field(s) %s in CircularReference3 is not found in the empty JSON string", CircularReference3.openapiRequiredFields.toString()));
|
||||
}
|
||||
}
|
||||
JsonObject jsonObj = jsonElement.getAsJsonObject();
|
||||
// validate the optional field `prop1`
|
||||
if (jsonObj.get("prop1") != null && !jsonObj.get("prop1").isJsonNull()) {
|
||||
CircularReference1.validateJsonElement(jsonObj.get("prop1"));
|
||||
}
|
||||
}
|
||||
|
||||
public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
|
||||
if (!CircularReference3.class.isAssignableFrom(type.getRawType())) {
|
||||
return null; // this class only serializes 'CircularReference3' and its subtypes
|
||||
}
|
||||
final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
|
||||
final TypeAdapter<CircularReference3> thisAdapter
|
||||
= gson.getDelegateAdapter(this, TypeToken.get(CircularReference3.class));
|
||||
|
||||
return (TypeAdapter<T>) new TypeAdapter<CircularReference3>() {
|
||||
@Override
|
||||
public void write(JsonWriter out, CircularReference3 value) throws IOException {
|
||||
JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject();
|
||||
obj.remove("additionalProperties");
|
||||
// serialize additional properties
|
||||
if (value.getAdditionalProperties() != null) {
|
||||
for (Map.Entry<String, Object> entry : value.getAdditionalProperties().entrySet()) {
|
||||
if (entry.getValue() instanceof String)
|
||||
obj.addProperty(entry.getKey(), (String) entry.getValue());
|
||||
else if (entry.getValue() instanceof Number)
|
||||
obj.addProperty(entry.getKey(), (Number) entry.getValue());
|
||||
else if (entry.getValue() instanceof Boolean)
|
||||
obj.addProperty(entry.getKey(), (Boolean) entry.getValue());
|
||||
else if (entry.getValue() instanceof Character)
|
||||
obj.addProperty(entry.getKey(), (Character) entry.getValue());
|
||||
else {
|
||||
JsonElement jsonElement = gson.toJsonTree(entry.getValue());
|
||||
if (jsonElement.isJsonArray()) {
|
||||
obj.add(entry.getKey(), jsonElement.getAsJsonArray());
|
||||
} else {
|
||||
obj.add(entry.getKey(), jsonElement.getAsJsonObject());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
elementAdapter.write(out, obj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CircularReference3 read(JsonReader in) throws IOException {
|
||||
JsonElement jsonElement = elementAdapter.read(in);
|
||||
validateJsonElement(jsonElement);
|
||||
JsonObject jsonObj = jsonElement.getAsJsonObject();
|
||||
// store additional fields in the deserialized instance
|
||||
CircularReference3 instance = thisAdapter.fromJsonTree(jsonObj);
|
||||
for (Map.Entry<String, JsonElement> entry : jsonObj.entrySet()) {
|
||||
if (!openapiFields.contains(entry.getKey())) {
|
||||
if (entry.getValue().isJsonPrimitive()) { // primitive type
|
||||
if (entry.getValue().getAsJsonPrimitive().isString())
|
||||
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString());
|
||||
else if (entry.getValue().getAsJsonPrimitive().isNumber())
|
||||
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber());
|
||||
else if (entry.getValue().getAsJsonPrimitive().isBoolean())
|
||||
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean());
|
||||
else
|
||||
throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString()));
|
||||
} else if (entry.getValue().isJsonArray()) {
|
||||
instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class));
|
||||
} else { // JSON object
|
||||
instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class));
|
||||
}
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
}.nullSafe();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of CircularReference3 given an JSON string
|
||||
*
|
||||
* @param jsonString JSON string
|
||||
* @return An instance of CircularReference3
|
||||
* @throws IOException if the JSON string is invalid with respect to CircularReference3
|
||||
*/
|
||||
public static CircularReference3 fromJson(String jsonString) throws IOException {
|
||||
return JSON.getGson().fromJson(jsonString, CircularReference3.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert an instance of CircularReference3 to an JSON string
|
||||
*
|
||||
* @return JSON string
|
||||
*/
|
||||
public String toJson() {
|
||||
return JSON.getGson().toJson(this);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,67 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
package org.openapitools.client.model;
|
||||
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.annotations.JsonAdapter;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import org.openapitools.client.model.Tag;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* Model tests for ArrayOfSameRef
|
||||
*/
|
||||
public class ArrayOfSameRefTest {
|
||||
private final ArrayOfSameRef model = new ArrayOfSameRef();
|
||||
|
||||
/**
|
||||
* Model tests for ArrayOfSameRef
|
||||
*/
|
||||
@Test
|
||||
public void testArrayOfSameRef() {
|
||||
// TODO: test ArrayOfSameRef
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the property 'arrayFooOne'
|
||||
*/
|
||||
@Test
|
||||
public void arrayFooOneTest() {
|
||||
// TODO: test arrayFooOne
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the property 'arrayFooTwo'
|
||||
*/
|
||||
@Test
|
||||
public void arrayFooTwoTest() {
|
||||
// TODO: test arrayFooTwo
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the property 'arrayFooThree'
|
||||
*/
|
||||
@Test
|
||||
public void arrayFooThreeTest() {
|
||||
// TODO: test arrayFooThree
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
package org.openapitools.client.model;
|
||||
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.annotations.JsonAdapter;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import org.openapitools.client.model.CircularReference2;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* Model tests for CircularReference1
|
||||
*/
|
||||
public class CircularReference1Test {
|
||||
private final CircularReference1 model = new CircularReference1();
|
||||
|
||||
/**
|
||||
* Model tests for CircularReference1
|
||||
*/
|
||||
@Test
|
||||
public void testCircularReference1() {
|
||||
// TODO: test CircularReference1
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the property 'prop1'
|
||||
*/
|
||||
@Test
|
||||
public void prop1Test() {
|
||||
// TODO: test prop1
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
package org.openapitools.client.model;
|
||||
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.annotations.JsonAdapter;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import org.openapitools.client.model.CircularReference3;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* Model tests for CircularReference2
|
||||
*/
|
||||
public class CircularReference2Test {
|
||||
private final CircularReference2 model = new CircularReference2();
|
||||
|
||||
/**
|
||||
* Model tests for CircularReference2
|
||||
*/
|
||||
@Test
|
||||
public void testCircularReference2() {
|
||||
// TODO: test CircularReference2
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the property 'prop1'
|
||||
*/
|
||||
@Test
|
||||
public void prop1Test() {
|
||||
// TODO: test prop1
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
package org.openapitools.client.model;
|
||||
|
||||
import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.annotations.JsonAdapter;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import org.openapitools.client.model.CircularReference1;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* Model tests for CircularReference3
|
||||
*/
|
||||
public class CircularReference3Test {
|
||||
private final CircularReference3 model = new CircularReference3();
|
||||
|
||||
/**
|
||||
* Model tests for CircularReference3
|
||||
*/
|
||||
@Test
|
||||
public void testCircularReference3() {
|
||||
// TODO: test CircularReference3
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the property 'prop1'
|
||||
*/
|
||||
@Test
|
||||
public void prop1Test() {
|
||||
// TODO: test prop1
|
||||
}
|
||||
|
||||
}
|
51
w
Normal file
51
w
Normal file
@ -0,0 +1,51 @@
|
||||
openapi: 3.1.0
|
||||
info:
|
||||
title: ""
|
||||
version: ""
|
||||
|
||||
paths:
|
||||
/user/getInfo:
|
||||
get:
|
||||
operationId: getUserInfo
|
||||
responses:
|
||||
"200":
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Bar'
|
||||
description: |
|
||||
OK
|
||||
security:
|
||||
- Session: []
|
||||
x-accepts: application/json
|
||||
|
||||
components:
|
||||
schemas:
|
||||
Foo:
|
||||
type: object
|
||||
required:
|
||||
- arrayOfStrings
|
||||
properties:
|
||||
arrayOfStrings:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
|
||||
Bar:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Foo'
|
||||
Hello:
|
||||
type: object
|
||||
properties:
|
||||
arrayFooOne:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Foo'
|
||||
arrayFooTwo:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Foo'
|
||||
arrayFooThree:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Foo'
|
Loading…
x
Reference in New Issue
Block a user