在 graphql-tag 中定义 JSON/Object 类型

Posted

技术标签:

【中文标题】在 graphql-tag 中定义 JSON/Object 类型【英文标题】:Defining JSON/Object type in graphql-tag 【发布时间】:2018-10-19 07:11:34 【问题描述】:

我对 Apollo gql 有点陌生,只是想知道是否有人知道是否可以在 graphql-tag 中定义 Object 类?

export const CREATE_STYLE = gql`
  mutation styleCreate(
    $formID: String!
    $fontFamily: Object //how do you define object/JSON object?
  ) 
    styleCreate(
      formID: $formID
      fontFamily: $fontFamily

    ) 
      styleID

    
  
`;

【问题讨论】:

【参考方案1】:

首先,如果输入类型是一个对象,我建议在服务器上将其定义为input type。

在我使用的设置中:

export const createUser = gql`
    mutation createUser($user: UserCreate) 
        create(input: $user) 
            name
            email
        
    

其中“UserCreate”是一个看起来像这样的界面:

export interface UserCreate 
  // The user name.
  name: string,
  // The user email address.
  email: string,
;

您可以手动创建界面,但我建议使用apollo codegen,它可以为您提供所需的所有输入类型。

【讨论】:

以上是关于在 graphql-tag 中定义 JSON/Object 类型的主要内容,如果未能解决你的问题,请参考以下文章

如何将 GraphQLObjectType 与 graphql-tag 和 gql-tag 创建的模式结合起来?

具有嵌套输入的模式的相应 graphql-tag?

graphql-tag 的 Webpack 加载器未在 Angular 8 中加载

为啥将 Apollo 与 Nuxt 一起使用需要 graphql-tag?

GraphQL“必须提供查询字符串” graphql-tag react-apollo

node_modules/graphql-tag/lib/index.d.ts(2,57) 中的 Angular 7 错误:错误 TS1005:“,”预期