Skip to content

Commit 3fe1bb5

Browse files
committed
feat(client): update jackson client generation to always annotate all fields
1 parent bce5bc4 commit 3fe1bb5

File tree

1 file changed

+12
-0
lines changed
  • plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types

1 file changed

+12
-0
lines changed

plugins/client/graphql-kotlin-client-generator/src/main/kotlin/com/expediagroup/graphql/plugin/client/generator/types/generatePropertySpecs.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@
1717
package com.expediagroup.graphql.plugin.client.generator.types
1818

1919
import com.expediagroup.graphql.plugin.client.generator.GraphQLClientGeneratorContext
20+
import com.expediagroup.graphql.plugin.client.generator.GraphQLSerializer
2021
import com.expediagroup.graphql.plugin.client.generator.ScalarConverterInfo
2122
import com.expediagroup.graphql.plugin.client.generator.exceptions.DeprecatedFieldsSelectedException
2223
import com.expediagroup.graphql.plugin.client.generator.exceptions.InvalidSelectionSetException
2324
import com.expediagroup.graphql.plugin.client.generator.exceptions.MissingArgumentException
25+
import com.fasterxml.jackson.annotation.JsonProperty
2426
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
2527
import com.fasterxml.jackson.databind.annotation.JsonSerialize
2628
import com.squareup.kotlinpoet.AnnotationSpec
@@ -96,6 +98,16 @@ internal fun generatePropertySpecs(
9698
fieldDefinition.description?.content?.let { kdoc ->
9799
propertySpecBuilder.addKdoc("%L", kdoc)
98100
}
101+
if (context.serializer == GraphQLSerializer.JACKSON) {
102+
// always add @get:JsonProperty annotation as a workaround to Jackson limitations
103+
// related to JavaBean naming conventions
104+
propertySpecBuilder.addAnnotation(
105+
AnnotationSpec.builder(JsonProperty::class)
106+
.useSiteTarget(AnnotationSpec.UseSiteTarget.GET)
107+
.addMember("value = \"$fieldName\"")
108+
.build()
109+
)
110+
}
99111
propertySpecBuilder.build()
100112
}
101113

0 commit comments

Comments
 (0)