У меня есть graphQL ApolloServer, возвращающий набор транзакций с разбивкой на страницы для учетной записи. Вот фрагмент моей схемы:
type Account implements Node {
id: ID!
name: String!
}
type Transaction implements Node {
id: ID!
name: String!
accountId: ID!
}
В спецификации реле https://relay.dev/graphql/connections.htm указано поле, которое возвращает тип соединения, может принимать параметры: 1) before
и last
или 2) after
и first
Это означает, что они не могут быть необязательными без определения операции по умолчанию after
или before
.
Для запроса, который обрабатывает только случай after
, я бы сделал обязательное после этого:
type Query {
accounts: [Account]!
transactions(accountId: ID!,after: String!, first: Int = 10 ): TransactionsBelongToAccountConnection
}
Но для случая, который обрабатывает как before
, так и after
, мне нужно было бы сделать все четыре из этих параметров необязательными и объявить один из режимов after
или before
по умолчанию:
type Query {
accounts: [Account]!
transactions(accountId: ID!, before: Sting, last: Int = 10, after: String, first: Int = 10 ): TransactionsBelongToAccountConnection
}
или (мой вопрос) в graphql есть способ сделать ровно один из двух необходимых параметров?