Директива GraphQL params как объект - PullRequest
0 голосов
/ 13 февраля 2020

Привет, у меня проблема с директивой create с params, которая является объектом.

Я создаю объявление объявления директивы в файле .graphql,

directive @validate(params: ValidateParams) on FIELD_DEFINITION

input ValidateParams {
    limit: Int,
}

photos(
        limit: Int,
        sort: String,
    ): [Photo!]! @validate(params: {limit: 100})

Я получил ошибку

  Schema must contain uniquely named types but contains multiple types named "ValidateParams"

Есть ли у вас какие-либо идеи, как я могу создать params как объект? Когда я устанавливаю предел как Int, все в порядке.

Спасибо!

Обновление

return new ApolloServer({
        context: ({ req: { body, headers } }) => {

            return {
                authorization: headers.authorization,
            };
        },
        debug: false,
        introspection: true,
        playground: true,
        schema: internalSchema,
        tracing: true,
        uploads: false
    });

export function buildSchema(schemaContent: string, resolvers: IResolvers, schemaDirectives: IDirectiveResolvers = {}): GraphQLSchema {
    const schema = buildFederatedSchema({ typeDefs: gql`${schemaContent}` });

    addResolveFunctionsToSchema({
        schema,
        resolvers: { JSON: GraphQLJSONObject },
        resolverValidationOptions: { requireResolversForResolveType: false, allowResolversNotInSchema: true }
    });

    if (Object.keys(schemaDirectives).length) {
        attachDirectiveResolvers(schema, schemaDirectives);
    }

    return schema;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...