forked from loafle/openapi-generator-original
Support examples in Response Content (#14336)
* Add examples map and overload constructor * Create CodegenMediaType with examples * Add test
This commit is contained in:
parent
03299528e9
commit
1c157a2847
@ -1,13 +1,17 @@
|
|||||||
package org.openapitools.codegen;
|
package org.openapitools.codegen;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.models.examples.Example;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class CodegenMediaType {
|
public class CodegenMediaType {
|
||||||
private CodegenProperty schema;
|
private CodegenProperty schema;
|
||||||
private LinkedHashMap<String, CodegenEncoding> encoding;
|
private LinkedHashMap<String, CodegenEncoding> encoding;
|
||||||
private HashMap<String, SchemaTestCase> testCases = new HashMap<>();
|
private HashMap<String, SchemaTestCase> testCases = new HashMap<>();
|
||||||
|
private Map<String, Example> examples = null;
|
||||||
|
|
||||||
public CodegenMediaType(CodegenProperty schema, LinkedHashMap<String, CodegenEncoding> encoding, HashMap<String, SchemaTestCase> testCases) {
|
public CodegenMediaType(CodegenProperty schema, LinkedHashMap<String, CodegenEncoding> encoding, HashMap<String, SchemaTestCase> testCases) {
|
||||||
this.schema = schema;
|
this.schema = schema;
|
||||||
@ -17,6 +21,11 @@ public class CodegenMediaType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CodegenMediaType(CodegenProperty schema, LinkedHashMap<String, CodegenEncoding> encoding, HashMap<String, SchemaTestCase> testCases, Map<String, Example> examples) {
|
||||||
|
this(schema, encoding, testCases);
|
||||||
|
this.examples = examples;
|
||||||
|
}
|
||||||
|
|
||||||
public CodegenProperty getSchema() {
|
public CodegenProperty getSchema() {
|
||||||
return schema;
|
return schema;
|
||||||
}
|
}
|
||||||
@ -27,6 +36,10 @@ public class CodegenMediaType {
|
|||||||
|
|
||||||
public HashMap<String, SchemaTestCase> getTestCases() { return testCases; }
|
public HashMap<String, SchemaTestCase> getTestCases() { return testCases; }
|
||||||
|
|
||||||
|
public Map<String, Example> getExamples() {
|
||||||
|
return examples;
|
||||||
|
}
|
||||||
|
|
||||||
public String toString() {
|
public String toString() {
|
||||||
final StringBuilder sb = new StringBuilder("CodegenMediaType{");
|
final StringBuilder sb = new StringBuilder("CodegenMediaType{");
|
||||||
sb.append("schema=").append(schema);
|
sb.append("schema=").append(schema);
|
||||||
|
@ -7236,7 +7236,7 @@ public class DefaultCodegen implements CodegenConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CodegenMediaType codegenMt = new CodegenMediaType(schemaProp, ceMap, schemaTestCases);
|
CodegenMediaType codegenMt = new CodegenMediaType(schemaProp, ceMap, schemaTestCases, mt.getExamples());
|
||||||
cmtContent.put(contentType, codegenMt);
|
cmtContent.put(contentType, codegenMt);
|
||||||
if (schemaProp != null) {
|
if (schemaProp != null) {
|
||||||
if (addSchemaImportsFromV3SpecLocations) {
|
if (addSchemaImportsFromV3SpecLocations) {
|
||||||
|
@ -4189,6 +4189,9 @@ public class DefaultCodegenTest {
|
|||||||
assertEquals(cp.complexType, "coordinates");
|
assertEquals(cp.complexType, "coordinates");
|
||||||
assertEquals(cp.baseName, "SchemaFor201ResponseBodyApplicationJson");
|
assertEquals(cp.baseName, "SchemaFor201ResponseBodyApplicationJson");
|
||||||
|
|
||||||
|
assertNotNull(mt.getExamples());
|
||||||
|
assertEquals(mt.getExamples().size(), 2);
|
||||||
|
|
||||||
mt = content.get("text/plain");
|
mt = content.get("text/plain");
|
||||||
assertNull(mt.getEncoding());
|
assertNull(mt.getEncoding());
|
||||||
cp = mt.getSchema();
|
cp = mt.getSchema();
|
||||||
|
@ -44,6 +44,15 @@ paths:
|
|||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/coordinates'
|
$ref: '#/components/schemas/coordinates'
|
||||||
|
examples:
|
||||||
|
Example Amsterdam coordinates:
|
||||||
|
value:
|
||||||
|
lat: 52.377956
|
||||||
|
long: 4.897070
|
||||||
|
Example San Francisco coordinates:
|
||||||
|
value:
|
||||||
|
lat: 37.773972
|
||||||
|
long: -122.431297
|
||||||
text/plain:
|
text/plain:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/stringWithMinLength'
|
$ref: '#/components/schemas/stringWithMinLength'
|
||||||
@ -58,6 +67,15 @@ paths:
|
|||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/coordinates'
|
$ref: '#/components/schemas/coordinates'
|
||||||
|
examples:
|
||||||
|
Example Amsterdam coordinates:
|
||||||
|
value:
|
||||||
|
lat: 52.377956
|
||||||
|
long: 4.897070
|
||||||
|
Example San Francisco coordinates:
|
||||||
|
value:
|
||||||
|
lat: 37.773972
|
||||||
|
long: -122.431297
|
||||||
text/plain:
|
text/plain:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/stringWithMinLength'
|
$ref: '#/components/schemas/stringWithMinLength'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user