首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在graphql-compose中使用自定义输入类型?

如何在graphql-compose中使用自定义输入类型?
EN

Stack Overflow用户
提问于 2020-01-01 20:48:43
回答 1查看 1.7K关注 0票数 0

我使用mongodb和graphql-compose-mongoose来生成Graphql模式。但是,我正在添加身份验证突变,并且我希望为其中一个查询添加graphql输入。我在文档中看到args.filter可以接收输入:

代码语言:javascript
复制
CityTC.addResolver({
  kind: 'query',
  name: 'findMany',
  args: {
    filter: `input CityFilterInput {
      code: String!
    }`,
    limit: {
      type: 'Int',
      defaultValue: 20,
    },
    skip: 'Int',
    // ... other args if needed
  },
  type: [CityTC], // array of cities
  resolve: async ({ args, context }) => {
    return context.someCityDB
      .findMany(args.filter)
      .limit(args.limit)
      .skip(args.skip);
  },
});

但是,我没有使用任何过滤器。我想像这样创建一个输入:

代码语言:javascript
复制
const AuthPayloadTC = schemaComposer.createObjectTC({
  name: 'AuthPayloadTC',
  fields: {
      jwtToken: 'String!'
  }
});

AuthPayloadTC.addResolver({
  name: 'userConnectData',
  type: AuthPayloadTC,
  args: `input {
    accessToken String!
    provider String!
  }`,
  resolve: async ({ source, args, context, info }) => {
      const { accessToken, provider } = args;
      return {
          jwtToken: '12345678'
      }
  }
})

这不起作用,因为我的输入没有被解析成args字段所期望的那种对象。我确实注意到graphql-compose公开了InputTypeComposer,但是我无法举例说明如何在解析器中使用它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-01 21:01:38

通过一些试验和错误,我弄明白了这一点:

代码语言:javascript
复制
import { schemaComposer, toInputObjectType } from 'graphql-compose'

const InputTC = schemaComposer.createObjectTC({
  name: 'UserConnectDataInput',
  fields: {
    accessToken: 'String!'
  }
});

const InputITC = toInputObjectType(InputTC);

AuthPayloadTC.addResolver({
  name: 'userConnectData',
  type: AuthPayloadTC,
  args: {
    input: InputITC
  },
  resolve: async ({ source, args, context, info }) => {
      const { accessToken, provider, email } = args;
      return {
          jwtToken: '12345678'
      }
  }
})
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59552656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档