https://kotlinlang.org logo
Docs
Join the conversationJoin Slack
Channels
100daysofcode
100daysofkotlin
100daysofkotlin-2021
advent-of-code
aem
ai
alexa
algeria
algolialibraries
amsterdam
android
android-architecture
android-databinding
android-studio
androidgithubprojects
androidthings
androidx
androidx-xprocessing
anime
anko
announcements
apollo-kotlin
appintro
arabic
argentina
arkenv
arksemdevteam
armenia
arrow
arrow-contributors
arrow-meta
ass
atlanta
atm17
atrium
austin
australia
austria
awesome-kotlin
ballast
bangladesh
barcelona
bayarea
bazel
beepiz-libraries
belgium
berlin
big-data
books
boston
brazil
brikk
budapest
build
build-tools
bulgaria
bydgoszcz
cambodia
canada
carrat
carrat-dev
carrat-feed
chicago
chile
china
chucker
cincinnati-user-group
cli
clikt
cloudfoundry
cn
cobalt
code-coverage
codeforces
codemash-precompiler
codereview
codingame
codingconventions
coimbatore
collaborations
colombia
colorado
communities
competitive-programming
competitivecoding
compiler
compose
compose-android
compose-desktop
compose-hiring
compose-ios
compose-mp
compose-ui-showcase
compose-wear
compose-web
connect-audit-events
corda
cork
coroutines
couchbase
coursera
croatia
cryptography
cscenter-course-2016
cucumber-bdd
cyprus
czech
dagger
data2viz
databinding
datascience
dckotlin
debugging
decompose
decouple
denmark
deprecated
detekt
detekt-hint
dev-core
dfw
docs-revamped
dokka
domain-driven-design
doodle
dsl
dublin
dutch
eap
eclipse
ecuador
edinburgh
education
effective-kotlin
effectivekotlin
emacs
embedded-kotlin
estatik
event21-community-content
events
exposed
failgood
fb-internal-demo
feed
firebase
flow
fluid-libraries
forkhandles
forum
fosdem
fp-in-kotlin
framework-elide
freenode
french
fritz2
fuchsia
functional
funktionale
gamedev
ge-kotlin
general-advice
georgia
geospatial
german-lang
getting-started
github-workflows-kt
glance
godot-kotlin
google-io
gradle
graphic
graphkool
graphql
graphql-kotlin
graviton-browser
greece
grpc
gsoc
gui
hackathons
hacktoberfest
hamburg
hamkrest
helios
helsinki
hexagon
hibernate
hikari-cp
hire-me
hiring
hongkong
hoplite
http4k
hungary
hyderabad
image-processing
india
indonesia
inkremental
intellij
intellij-plugins
intellij-tricks
internships
introduce-yourself
io
ios
iran
israel
istanbulcoders
italian
jackson-kotlin
jadx
japanese
jasync-sql
java-to-kotlin-refactoring
javadevelopers
javafx
javalin
javascript
jdbi
jhipster-kotlin
jobsworldwide
jpa
jshdq
juul-libraries
jvm-ir-backend-feedback
jxadapter
k2-early-adopters
kaal
kafka
kakao
kalasim
kapt
karachi
karg
karlsruhe
kash_shell
kaskade
kbuild
kdbc
kgen-doc-tools
kgraphql
kinta
klaxon
klock
kloudformation
kmdc
kmm-español
kmongo
knbt
knote
koalaql
koans
kobalt
kobweb
kodein
kodex
kohesive
koin
koin-dev
komapper
kondor-json
kong
kontent
kontributors
korau
korean
korge
korim
korio
korlibs
korte
kotest
kotest-contributors
kotless
kotlick
kotlin-asia
kotlin-beam
kotlin-by-example
kotlin-csv
kotlin-data-storage
kotlin-foundation
kotlin-fuel
kotlin-in-action
kotlin-inject
kotlin-latam
kotlin-logging
kotlin-multiplatform-contest
kotlin-mumbai
kotlin-native
kotlin-pakistan
kotlin-plugin
kotlin-pune
kotlin-roadmap
kotlin-samples
kotlin-sap
kotlin-serbia
kotlin-spark
kotlin-szeged
kotlin-website
kotlinacademy
kotlinbot
kotlinconf
kotlindl
kotlinforbeginners
kotlingforbeginners
kotlinlondon
kotlinmad
kotlinprogrammers
kotlinsu
kotlintest
kotlintest-devs
kotlintlv
kotlinultimatechallenge
kotlinx-datetime
kotlinx-files
kotlinx-html
kotrix
kotson
kovenant
kprompt
kraph
krawler
kroto-plus
ksp
ktcc
ktfmt
ktlint
ktor
ktp
kubed
kug-leads
kug-torino
kvision
kweb
lambdaworld_cadiz
lanark
language-evolution
language-proposals
latvia
leakcanary
leedskotlinusergroup
lets-have-fun
libgdx
libkgd
library-development
linkeddata
lithuania
london
losangeles
lottie
love
lychee
macedonia
machinelearningbawas
madrid
malaysia
mathematics
meetkotlin
memes
meta
metro-detroit
mexico
miami
micronaut
minnesota
minutest
mirror
mockk
moko
moldova
monsterpuzzle
montreal
moonbean
morocco
motionlayout
mpapt
mu
multiplatform
mumbai
munich
mvikotlin
mvrx
myndocs-oauth2-server
naming
navigation-architecture-component
nepal
new-mexico
new-zealand
newname
nigeria
nodejs
norway
npm-publish
nyc
oceania
ohio-kotlin-users
oldenburg
oolong
opensource
orbit-mvi
osgi
otpisani
package-search
pakistan
panamá
pattern-matching
pbandk
pdx
peru
philippines
phoenix
pinoy
pocketgitclient
polish
popkorn
portugal
practical-functional-programming
proguard
prozis-android-backup
pyhsikal
python
python-contributors
quasar
random
re
react
reaktive
realm
realworldkotlin
reductor
reduks
redux
redux-kotlin
refactoring-to-kotlin
reflect
refreshversions
reports
result
rethink
revolver
rhein-main
rocksdb
romania
room
rpi-pico
rsocket
russian
russian_feed
russian-kotlinasfirst
rx
rxjava
san-diego
science
scotland
scrcast
scrimage
script
scripting
seattle
serialization
server
sg-user-group
singapore
skia-wasm-interop-temp
skrape-it
slovak
snake
sofl-user-group
southafrica
spacemacs
spain
spanish
speaking
spek
spin
splitties
spotify-mobius
spring
spring-security
squarelibraries
stackoverflow
stacks
stayhungrystayfoolish
stdlib
stlouis
strife-discord-lib
strikt
students
stuttgart
sudan
swagger-gradle-codegen
swarm
sweden
swing
swiss-user-group
switzerland
talking-kotlin
tallinn
tampa
teamcity
tegal
tempe
tensorflow
terminal
test
testing
testtestest
texas
tgbotapi
thailand
tornadofx
touchlab-tools
training
tricity-kotlin-user-group
trójmiasto
truth
tunisia
turkey
turkiye
twitter-feed
uae
udacityindia
uk
ukrainian
uniflow
unkonf
uruguay
utah
uuid
vancouver
vankotlin
vertx
videos
vienna
vietnam
vim
vkug
vuejs
web-mpp
webassembly
webrtc
wimix_sentry
wwdc
zircon
Powered by Linen
graphql-kotlin
  • n

    Neal Sanche

    05/04/2021, 11:18 PM
    Today I tried to make a very simple GraphQL subscription and hit some dead ends. Details in thread.
    s
    6 replies · 2 participants
  • m

    Martin Brehovsky

    05/06/2021, 7:57 PM
    Hey guys, a quick question - would it be possible for graphql-kotlin to be able to verify compatibility with existing schema? I really like the fact we can derive the schema from the code (definitely the way forward), but I wonder if we could have a mode which can tell us if the schema is the same as expected supplied schema or how they differ ... if this does not exists, how difficult this might be to be added?
    d
    s
    6 replies · 3 participants
  • j

    Jilles van Gurp

    05/07/2021, 8:00 AM
    I did some preliminary testing with kotlin 1.5.0 and the upcoming co-routines 1.5.0-RC and the latest expedia graphql 4.1. It looks like there is a bit of breakage. Some errors about functions that no longer exist in co-routines that look like they are being called from graphql. 1.4.3 is fine. We have some other issues as well blocking the upgrade (latest kotlinx serialization looks like it breaks stuff, one of our test libraries doesn't work with kotlin 1.5) so we are rolling back for now. Early days of course, but you might want to start testing with this on a branch.
    d
    1 reply · 2 participants
  • m

    Martin Brehovsky

    05/17/2021, 11:51 AM
    In my understanding graphql-kotlin does not support persisted queries out of the box. How difficult it would be to add this support?
    d
    s
    7 replies · 3 participants
  • n

    Nikky

    05/18/2021, 7:40 AM
    in spring server.. how can i set up a "filter" that can introspect all incoming graphql requests? i need to add spans with sleuth/brave and just cannot figure out where to hook into edit: found it.. this sample hould help me get started: https://github.com/ExpediaGroup/graphql-kotlin/blob/master/examples/server/spring-[…]rver/spring/instrumentation/TrackTimesInvokedInstrumentation.kt still not quite sure how to only extract the query name..
    s
    1 reply · 2 participants
  • r

    Rupesh

    05/27/2021, 2:45 AM
    Hi, I wanted to understand how apollo GQL plugin works for android and iOS. Do they share the same codebase for generating the platform specific code? I wanted to build something which generate the code for both the platform at compile time. Any leads would be appreciated. Is there anyway to achieve the same thing by sharing the common codebase?
    s
    j
    +1
    6 replies · 4 participants
  • j

    Joe

    05/29/2021, 1:33 AM
    Is there a way to use a 3rd party annotation (ie, one that I can't directly annotate with @GraphQLDirective) as a directive? If not, what would need to get built out to make that possible? (Does @Deprecated just have explicit special handling that makes that one work?)
    d
    s
    6 replies · 3 participants
  • j

    Jilles van Gurp

    06/07/2021, 10:27 AM
    I just ran into a
    com.expediagroup.graphql.generator.exceptions.TypeNotSupportedException
    during schema generation where apparently one of my functions returns Unit which is not allowed. The problem is it does not tell me where the error is. Is there a way to get more detailed errors? Once I know where the error is, I can fix it. It would be helpful to improve this as this seems to happen a lot to me. In this case, complete mystery where the error is.
    d
    5 replies · 2 participants
  • m

    Martin Brehovsky

    06/16/2021, 12:57 AM
    I’m trying to figure out how to “connect” my
    KotlinDataLoader
    and my custom context derived from
    SpringGraphQLContext
    . Is there any way to use the custom context from the dataloader itself?
    d
    7 replies · 2 participants
  • r

    rocketraman

    07/01/2021, 6:19 PM
    Is there a way to serialize and re-use the GraphQLSchema object across process boundaries? I'm trying to reduce app startup time, and was thinking distributing a pre-built GraphQLSchema with my app would be one way to do that, as creating the schema seems to be the bulk of my startup time currently.
    d
    2 replies · 2 participants
  • m

    Martin Brehovsky

    07/12/2021, 11:52 PM
    I have a question regarding nullable items, specifically interested in functions which return completable futures. At this point it seems every time a given function returns a nullable value (or nullable type of CF), when the dependency fails, the query returns null and then details in the error field in the response. Failures for the non-nullable types fail the whole query. I guess this works for most of the cases, but what if I need to fail the query completely in the case it given function return a nullable object? Pretty much need to differentiate between a regular value (which can be nullable) and the actual failure -> fail the whole query and not return null). Is something like this doable?
    d
    s
    36 replies · 3 participants
  • m

    Miles Alden

    07/14/2021, 12:29 AM
    Hey all, wondering if anyone can provide a little guidance re: adding single headers to apollo graphql calls in Kotlin? Don't really want this to be a global header so trying to avoid the interceptor pattern.
    interface TourService {
        @POST("/")
        suspend fun toursQuery(
            @Header("Authorization") auth: String,
            @Header("Content-Type") content: String = "application/json",
            @Body body: String): List<Tour>
    }
    
    object ApolloBuilder {
        private const val BASE_URL = "<https://somewhere.com>"
        private fun getApollo(): ApolloClient {
            return ApolloClient.builder()
                .serverUrl(BASE_URL)
                .build()
        }
    }
    I assumed that the
    @Header
    annotation would magik things in 😄
    s
    s
    6 replies · 3 participants
  • e

    edwinRNDR

    07/16/2021, 12:04 PM
    Thinking this may be more a ktor problem. I made a horrible work-around:
    class KtorGraphQLRequestParser(
        private val mapper: ObjectMapper
    ) : GraphQLRequestParser<ApplicationRequest> {
        @Suppress("BlockingMethodInNonBlockingContext")
        override suspend fun parseRequest(request: ApplicationRequest): GraphQLServerRequest = try {
            val rawRequest = request.call.receiveText()
            val encoded = rawRequest.toByteArray(Charsets.ISO_8859_1)
            val decoded = String(encoded, Charsets.UTF_8)
            mapper.readValue(decoded, GraphQLServerRequest::class.java)
        } catch (e: IOException) {
            throw IOException("Unable to parse GraphQL payload.")
        }
    }
    s
    5 replies · 2 participants
  • r

    rocketraman

    07/21/2021, 1:49 PM
    I have a custom scalar type of
    ClosedRange<LocalDate>
    . I have defined and registered a
    Coercing<ClosedRange<LocalDate>, String>
    (and via debugger confirmed the coercer is being called at runtime), but I get a Jackson exception when parsing an Input:
    Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `kotlin.ranges.ClosedRange` (no Creators, like default constructor, exist): abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information
     at [Source: UNKNOWN; line: -1, column: -1] (through reference chain: my.MyInput["range"])
    Any idea why that would be happening?
    d
    s
    24 replies · 3 participants
  • a

    Alex

    07/26/2021, 8:12 PM
    Hejhej! 🙂 I'm currently using the GraphQL-Client for Github GraphQL api - and as the Github GraphQL Endpoint is protected, I want to download the schema and use it directly. Fortunately there is
    schemaFileName
    - added with
    5.0.0-alpha.1
    17 days ago ( https://github.com/ExpediaGroup/graphql-kotlin/commit/a6b957c999398c741cdfbc955fb86243ea211094 ) 🙌 The version
    5.0.0-alpha.1
    was not released due problems with maven central ( https://github.com/ExpediaGroup/graphql-kotlin/releases/tag/5.0.0-alpha.1 ) one should use the
    5.0.0-alpha.2
    - but last version of graphql gradle plugin I found is
    5.0.0-alpha.0
    => https://search.maven.org/artifact/com.expediagroup/graphql-kotlin-gradle-plugin/5.0.0-alpha.0/jar Was there a problem publishing the
    5.0.0-alpha.2
    and is there an alternative artifactory somewhere to test the
    5.0.0-alpha.2
    ?
    s
    d
    6 replies · 3 participants
  • j

    Jilles van Gurp

    07/28/2021, 7:35 AM
    What's roughly the schedule for getting 5.0 out at this point? We are using 4.x currently but it kind of makes upgrading spring, kotling, co-routines, etc. a bit tedious due to the outdated versions of those that 4.x still uses. 5.x seems to fix that so we'd like to either switch to that or maybe it would be possible to get a maintenance release for 4.x? We got it working with kotlin 1.5.10 and co-routines 1.5.0. But going beyond that, it seems stuff starts breaking. I tried this last week with the latest spring boot and co-routines 1.5.1 and suddenly we got a lot of schema errors. It compiles and builds fine but our tests fail due to this.
    s
    d
    11 replies · 3 participants
  • t

    Tobias

    08/10/2021, 8:08 AM
    I'm trying to wrap mutations in "namespace-types" according to https://graphql-rules.com/rules/mutation-namespaces , but can't figure out how.
    4 replies · 1 participant
  • t

    Tobias

    08/11/2021, 5:58 AM
    I'm converting a jaxrs system which heavily depends on converting exceptions thrown in the code to status codes. I'm trying to do something similar in Graphql by returning a specific specification and having all queries/mutations return class that "implements" that specification. Basically, all classes get an
    error: CommonErrorClass?
    . It will be a bit hackish, but with some automatic schema validation it should work reliably. The problem is, I can figure out how to turn an
    Exception
    into a custom specification?
    s
    d
    +1
    57 replies · 4 participants
  • t

    Tobias

    08/13/2021, 9:38 AM
    Is there a BoM published for graphql-kotlin somewhere?
    d
    2 replies · 2 participants
  • t

    Tobias

    08/23/2021, 6:03 PM
    I'm using
    graphql-kotlin
    together with a webserver called Armeria that has support for graphql-java (and an example for graphql-kotlin). The problem is that there is no way to get the
    RequestContext
    in suspend functions, nor to use the Dispatchers provided by Armeria in an easy way. I've solved it by extending and overriding methods in
    FunctionDataFetcher
    . It seems that
    runSuspendingFunction
    has parameters for at least
    CoroutineContext
    , so does that mean there are plans for greater configurability? E.g. by allowing the specification of a
    CoroutineContext
    in the constructor of
    FunctionDataFetcher
    or something similar? I doubt the problem is unique to Armeria, since I can't figure out how to pass the context through to suspending methods without byte-code instrumenting graphql-kotlin runtime?
    d
    j
    24 replies · 3 participants
  • e

    edwinRNDR

    09/06/2021, 7:00 PM
    I am having some difficulties with directives for FIELD_DEFINITION. I created a custom KotlinSchemaDirectiveWiring and set up hooks. I see that the KotlinSchemaDirectiveWiring.onField is called for the annotated fields. In onField I set a wrapped datafetcher, but that doesn't seem to be used.
    d
    9 replies · 2 participants
  • d

    Dusan Hornik

    09/26/2021, 8:52 AM
    Hello, I am looking for an example on how to implement query directive. Documentation mentions two query directive
    @skip
    and
    @include
    and I am trying to implement
    @skipCache
    query directive. The idea is that if request/client annotates field with
    @skipCache
    the server will always recalculate the latest values (instead of using cached one).
    d
    6 replies · 2 participants
  • j

    Julius Almeida

    09/28/2021, 11:13 PM
    Hi, I am seeing an issue with `AttributeOverrides`:
    @AttributeOverrides(value = {
        @AttributeOverride(name = "timestamp", column = @Column(name = "tstmp")),
        @AttributeOverride(name = "id", column = @Column(name = "userid"))
    })
    I am getting
    an annotation cannot be used as the annotations argument
    1 reply · 1 participant
  • j

    Jilles van Gurp

    10/01/2021, 8:45 AM
    I saw that 5.0.0 was released. Thanks for that. The deprecation of Long and Double was something I had to work around a bit. We definitely need Long/Double numbers and not floats/ints. Using those is a bit of an antipattern in Kotlin unless you really know you don't need the precision. I would love some feedback on what the drawbacks are of this. I understand that javascript treats all numbers as 64 bit floats. Which raises the question why Doubles are not supported anymore since that is actually the closest thing Kotlin and Java have to what javascript supports natively. That translates as a 2^53 Long. So I understand why Longs were removed. We use Longs to send around timestamps in milliseconds after the epoch for that, Javascript's Doubles provide enough precision but Java's 32 bit Int doesn't. Json actually specify precision, which is why you can get frameworks like Jackson to deal with big ints and big decimals pretty easily. Beyond the limitations of javascript, are there any other concerns here? Not an issue for us because we actually use kotlin-js in the browser as well. So beyond bugs in kotlinx serialization (which we use for our multi platform graphql client), this won't affect us.
    @Component
    class FormationGraphqlHooks : SchemaGeneratorHooks {
        override fun willGenerateGraphQLType(type: KType): GraphQLType? {
            return when (type.classifier as? KClass<*>) {
                Long::class -> longScalar
                Double::class -> doubleScalar
                else -> null
            }
        }
    }
    
    private val longScalar = GraphQLScalarType.newScalar().name("Long")
        .coercing(object : Coercing<Long,Any> {
        override fun serialize(dataFetcherResult: Any): Any {
            return dataFetcherResult
        }
    
        override fun parseValue(input: Any): Long {
            return input as Long
        }
    
        override fun parseLiteral(input: Any): Long {
            return input as Long
        }
    }).build()
    
    private val doubleScalar = GraphQLScalarType.newScalar().name("Double")
        .coercing(object : Coercing<Double,Any> {
            override fun serialize(dataFetcherResult: Any): Any {
                return dataFetcherResult
            }
    
            override fun parseValue(input: Any): Double {
                return input as Double
            }
    
            override fun parseLiteral(input: Any): Double {
                return input as Double
            }
        }).build()
    r
    s
    4 replies · 3 participants
  • m

    Maria Sharkina

    10/06/2021, 10:46 PM
    Hello everyone, we would appreciate some help with the problem below. I am using expedia graphql-kotlin library and dataloaders approach in particular to resolve types, but I am stack on the mutation implementation. I want to use already defined data loader for returning the result type( i want to be able to return full object, not just the part which changed) , but I need to chain the mutation call to happen before resolving the type. Soomething like
    class ConsumerMutation(
        private val mutateDefaultConsumerAddressUseCase: MutateDefaultConsumerAddress
    ) : Mutation {
    
        @GraphQLDescription("Updates default consumer address.")
        fun setDefaultConsumerAddress(env: DataFetchingEnvironment, addressId: String): CompletableFuture<Consumer> 
            return mutateDefaultConsumerAddressUseCase.setDefaultConsumerAddress(env.getContext(), addressId).flatMap {
                //want to reuse ConsumerDataLoader for result fetching
                env.getValueFromMonoDataLoaderWithContext(ConsumerDataLoader::class, addressId).toMono()
            }.toFuture()
        }
    }
    Do you have any suggestions on how to use dataLoaders inside mutations or is it even a right pattern?
    l
    3 replies · 2 participants
  • m

    Meg Cahill

    10/08/2021, 4:22 PM
    hello! I've been developing with the alpha3 version of graphql-kotlin. For various reasons I am stuck using java 8, and it's a project that isn't fully migrated to kotlin. When I try to pull 5.0.0, I get an error related to the target version of java. Is java 8 not supported with this release? Or is there maybe some setting I may be missing? Thanks!
    `Variant 'apiElements' capability com.expediagroup:graphql-kotlin-ktor-client:5.0.0 declares an API of a library, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'jvm':
                     - Incompatible because this component declares a component compatible with Java 11 and the consumer needed a component compatible with Java 8
    d
    3 replies · 2 participants
  • x

    xenomachina

    10/13/2021, 5:46 PM
    Is anyone else seeing this “Illegal reflective access” warning after upgrading to 5.1.x, or know the right way to prevent it?
    j
    5 replies · 2 participants
  • h

    Henrik Friedrichsen

    10/18/2021, 7:29 AM
    Hi there, I was wondering, do you already have any plans on how to deal with the
    GraphQLContext
    changes in
    graphql-java
    ? Will
    graphql-kotlin
    simply use graphql-java’s
    GraphQLContext
    as passing custom object definitions seems to be deprecated?
    d
    9 replies · 2 participants
  • m

    Martin Brehovsky

    10/20/2021, 9:17 PM
    Hey guys, a quick question - is there any possibility to host two different schema in the same graphql-kotlin service (specifically in springboot)? I.e, one schema would live on
    /graphql
    endpoint and other schema would live on
    /other_graphql
    endpoint. Is something like this possible? If yes, can you give me some pointers how to do this?
    d
    s
    14 replies · 3 participants
  • d

    Dusan Hornik

    10/21/2021, 5:53 AM
    Hello, I am trying to implement some basic pagination and it seems like I should be using generics, but that doesn’t generate graphql schema:
    com.expediagroup.graphql.exceptions.TypeNotSupportedException: Cannot convert T since it is not a valid GraphQL type or outside the supported packages
    Code:
    class MyQuery: Query {}
        suspend fun students(pageNumber:Int): Page<Student> {
          return getStudents(pageNumber)
        } 
    }
    data class Page<T>(val items: List<T>, pageNumber: Int)
    data class Student(val name: String)
    Is there a recommended way to design this?
    d
    3 replies · 2 participants
Powered by Linen
Title
d

Dusan Hornik

10/21/2021, 5:53 AM
Hello, I am trying to implement some basic pagination and it seems like I should be using generics, but that doesn’t generate graphql schema:
com.expediagroup.graphql.exceptions.TypeNotSupportedException: Cannot convert T since it is not a valid GraphQL type or outside the supported packages
Code:
class MyQuery: Query {}
    suspend fun students(pageNumber:Int): Page<Student> {
      return getStudents(pageNumber)
    } 
}
data class Page<T>(val items: List<T>, pageNumber: Int)
data class Student(val name: String)
Is there a recommended way to design this?
d

Dariusz Kuc

10/21/2021, 9:55 PM
Hello 👋 TLDR generics are not supported by GraphQL spec so we don't support it either (https://github.com/ExpediaGroup/graphql-kotlin/issues/292)
While it is not ideal, the workaround is to create specific
Page
flavors (i.e.
StudentPage
instead of generic
Page<T>
)
d

Dusan Hornik

10/22/2021, 12:17 AM
Yeah, that’s what I thought so. Thank you Dariusz.
View count: 13