Использование схемы с таким набором
type Query {
client: ClientQuery!
}
type ClientQuery {
info(clientId: String): Client
}
type Client {
gender: String
name: String
}
у меня есть такой же reoslver для него
@Controller
class ClientResource {
@QueryMapping
fun client(@ContextValue clientId: Long): ClientQuery {
val currentClient = getClient(clientId)
log.info { "Current client $currentClient" }
return query
}
@Controller
class ClientQuery {
@SchemaMapping(typeName = "ClientQuery ", field = "info")
fun info(@Argument cleintId: String): Client {
// some manipulation
return Client()
}
}
}
но я хочу использовать inner class ClientQuery
вместо class ClientQuery
но когда я использую inner class
при вызове запроса graphiql{client{info(clientId:"1"){gender,name}}}
в ответ приходит ноль и я не вижу что был вызов внутреннего класса
Может быть, есть что-то, чего мне не хватает
Пожалуйста, убедитесь, что вы не сделали опечатку в вашем @Argument cleintId , так как в вашем запросе graphiql вы упоминаете, что отправляете clientId: "1".
Также вы можете попробовать разместить оба сопоставления на одном уровне внутри контроллера:
@QueryMapping
fun client(@ContextValue clientId: Long): ChatQuery {
val currentClient = getClient(clientId)
log.info { "Current client $currentClient" }
return query
}
@SchemaMapping(typeName = "ClientQuery ", field = "info")
fun info(@Argument cleintId: String): Client {
// some manipulation
return Client()
}
По предложению "Хулио Сезар Эстравис" Я внес некоторые изменения, которые также используют «внутренний класс» в коде.
@Controller
class ClientResource {
private val query = ClientQuery()
@QueryMapping
fun client(@ContextValue clientId: Long): ClientQuery {
val currentClient = getClient(clientId)
log.info { "Current client $currentClient" }
return query
}
inner class ClientQuery
@SchemaMapping(typeName = "ClientQuery ", field = "info")
fun info(@Argument cleintId: String): Client {
// some manipulation
return Client()
}
}
да, тут все правильно спасибо, хочу узнать подробнее, можно ли в принципе использовать конструкцию, подобную внутреннему классу, внутри основного резолвера graphql