Skip to content

Commit d807fb9

Browse files
new attribute isJson issue #1173
1 parent 0ef7e8e commit d807fb9

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2513,6 +2513,8 @@ public CodegenParameter fromParameter(Parameter parameter, Set<String> imports)
25132513
codegenParameter.dataType = codegenProperty.datatype;
25142514
codegenParameter.dataFormat = codegenProperty.dataFormat;
25152515

2516+
setParameterJson(codegenParameter, parameterSchema);
2517+
25162518
if (getBooleanValue(codegenProperty, IS_ENUM_EXT_NAME)) {
25172519
codegenParameter.datatypeWithEnum = codegenProperty.datatypeWithEnum;
25182520
codegenParameter.enumName = codegenProperty.enumName;
@@ -4403,6 +4405,14 @@ protected void setParameterNullable(CodegenParameter parameter, CodegenProperty
44034405
parameter.nullable = property.nullable;
44044406
}
44054407

4408+
protected void setParameterJson(CodegenParameter codegenParameter, Schema parameterSchema) {
4409+
String contentType = parameterSchema.getExtensions() == null ? null : (String) parameterSchema.getExtensions().get("x-content-type");
4410+
if (contentType != null && contentType.startsWith("application/") && contentType.endsWith("json")) {
4411+
// application/json, application/problem+json, application/ld+json, some more?
4412+
codegenParameter.isJson = true;
4413+
}
4414+
}
4415+
44064416
@Override
44074417
public boolean needsUnflattenedSpec() {
44084418
return false;

src/main/resources/handlebars/typescript-angular/api.service.mustache

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,12 @@ export class {{classname}} {
175175
{{#useHttpClient}}queryParameters = {{/useHttpClient}}queryParameters.set('{{baseName}}', <any>{{paramName}}.toISOString());
176176
{{/isDateTime}}
177177
{{^isDateTime}}
178+
{{#isJson}}
179+
{{#useHttpClient}}queryParameters = {{/useHttpClient}}queryParameters.set('{{baseName}}', JSON.stringify({{paramName}}));
180+
{{/isJson}}
181+
{{^isJson}}
178182
{{#useHttpClient}}queryParameters = {{/useHttpClient}}queryParameters.set('{{baseName}}', <any>{{paramName}});
183+
{{/isJson}}
179184
{{/isDateTime}}
180185
}
181186
{{/isListContainer}}

0 commit comments

Comments
 (0)