如何构建对象类型架构而不是主类型?

时间:2019-05-07 18:25:05

标签: javascript graphql

我正在尝试为对象设置架构,例如。

let schema1 = buildSchema(`
type Query {
    obj1: {
      prop1: String,
      prop2: number
    }
}
`);

但是我收到同步错误,该如何解决?

我还尝试创建自定义类型

let schema1 = buildSchema(`
  type customizedType {
    obj1: object
  }
  type Query {
    obj1: String
  }
`);

仍然是语法错误。

主要类型运行正常。

let schema1 = buildSchema(`
type Query {
    obj1: String
}
`);

我的根解析器将是这样的:

const root = {
    obj1: {
      prop1: "String",
      prop2: 123
    }
};

我正在尝试通过Follow语句获得结果。

let result1 = await graphql(schema1, "{ obj1 }", data);

1 个答案:

答案 0 :(得分:0)

我明白了,我只需要定义一个正确的类型。

我具有以下根数据:

const root = {
    obj1: {
      prop1: "String",
      prop2: 123
    }
};

这是我的示例架构

let schema1 = buildSchema(`
  type obj1Type {
    prop1: String,
    prop2: number,
  }
  type Query {
    obj1: obj1Type
  }
`);

然后我可以解析根数据

  async componentDidMount() {
    let result1 = await graphql(schema1, "{ obj1 { prop1, prop2 } }", root);
    console.log("obj1", result1); 
    // {data: {obj1: {prop1: "String", prop2: 123 }}}
    // I can also get partial data
    let result1_partial = await graphql(schema1, "{ obj1 { prop1 } }", root);
    console.log("obj1 partial", result1_partial) 
    // {data: {obj1: {prop1: "String" }}}
  }