Skip to content

Commit 4302f0f

Browse files
authored
Merge pull request #705 from swagger-api/issue-466
handle content schema in parameter objects
2 parents d015254 + 0d284a0 commit 4302f0f

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

src/main/java/io/swagger/codegen/v3/generators/DefaultCodegenConfig.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2414,8 +2414,11 @@ public CodegenParameter fromParameter(Parameter parameter, Set<String> imports)
24142414
codegenParameter.vendorExtensions.putAll(parameter.getExtensions());
24152415
}
24162416

2417-
if (parameter.getSchema() != null) {
2418-
Schema parameterSchema = parameter.getSchema();
2417+
Schema parameterSchema = parameter.getSchema();
2418+
if (parameterSchema == null) {
2419+
parameterSchema = getSchemaFromParameter(parameter);
2420+
}
2421+
if (parameterSchema != null) {
24192422
String collectionFormat = null;
24202423
if (parameterSchema instanceof ArraySchema) { // for array parameter
24212424
final ArraySchema arraySchema = (ArraySchema) parameterSchema;
@@ -3983,6 +3986,21 @@ protected Schema getSchemaFromResponse(ApiResponse response) {
39833986
return schema;
39843987
}
39853988

3989+
protected Schema getSchemaFromParameter(Parameter parameter) {
3990+
if (parameter.getContent() == null || parameter.getContent().isEmpty()) {
3991+
return null;
3992+
}
3993+
Schema schema = null;
3994+
for (String contentType : parameter.getContent().keySet()) {
3995+
schema = parameter.getContent().get(contentType).getSchema();
3996+
if (schema != null) {
3997+
schema.addExtension("x-content-type", contentType);
3998+
}
3999+
break;
4000+
}
4001+
return schema;
4002+
}
4003+
39864004
protected Parameter getParameterFromRef(String ref, OpenAPI openAPI) {
39874005
String parameterName = ref.substring(ref.lastIndexOf('/') + 1);
39884006
Map<String, Parameter> parameterMap = openAPI.getComponents().getParameters();

0 commit comments

Comments
 (0)