I noticed that GraphQL-SPQR has at least a couple properties that you can configure (e.g. graphql.spqr.gui.enabled=true
). Is there a configuration for specifying to use Gson instead of Jackson for object serialization/deserialization?
If there is not configuration, is there some other way I can use Gson instead of Jackson for GraphQL-SPQR?
NOTE: I am already using
spring.http.converters.preferred-json-mapper=gson
in myapplication.properties
, to override spring in general to use Gson instead of Jackson, but it doesn't seem to override GraphQL-SPQR's value mapper (defaults to Jackson).
Any help is greatly appreciated :)
All you need to do is register a
ValueMapperFactory
bean, e.g.To customize the factory, use the builder instead of the constructor:
You can find most customizable beans listed here.
I also think respecting
spring.http.converters.preferred-json-mapper
is a great idea. I'll add that in a future release. Follow this issue for progress.Be warned though that Gson mapping is much simpler than Jackson's. It has a lot less features, only takes fields into accounts (not constructor parameters or setters) and will likely not behave exactly the same as Jackson-based mapping. But I guess you're aware of that since you explicitly wish to use it.