4

たとえば、接続タイプがあります:

let usersType = new GraphQLObjectType({
    name: 'Users',
    description: 'users array',
    fields: () => ({
        array: {
            type: userConnection,
            description: 'all users',
            args: connectionArgs,
            searchFor: {
                type: GraphQLString
            },
            resolve: (root, args) => {
                return connectionFromArray(get(), args);
            }
        }
    })
});

この場合、クエリでは (first、last、after、before) 引数のみを指定できますが、userName などの追加の引数を渡す必要がある場合はどうすればよいでしょうか?

基本的に私は次のようなものが必要です:

query {
    array (first: 1, userName: "name")
}

ユーザータイプでは、次のようなリクエストを処理できます。

resolve: (root, args) => connectionFromArray(get(args.userName), args.args)
4

1 に答える 1

5

connectionArgsはい、可能です。リレー ヘルパーを次のような新しい引数で拡張する必要があります。

args: {
   ...connectionArgs,
   searchFor: { type: GraphQLString }
}

resolve次に、関数でアクセスします。

resolve: (root, args) => {
   // if the field argument 'searchFor' exists
   if (args.searchFor) {
   ...
   }
   ...
}
于 2016-07-12T09:30:45.477 に答える