如何使用gql查询返回完整响应

时间:2019-01-28 09:43:05

标签: graphql apollo-client

我正在学习GraphQl模块。

我想返回mod = ugarchroll(ervol.garch.spec , data = er, n.ahead = 1, n.start = 150, refit.every = 5, refit.window = "moving", window.size = 100, solver = "hybrid") metadata的所有数据。

注意:-contentmetadata将具有嵌套对象

所以我想编写一个模式,该模式将返回contentmetadata下的所有数据。

在运行查询时,我得到以下响应

content

请注意,我在这里做错了什么。请帮助

Rest API响应

{
  "data": {
    "crsContent": {
      "metadata": "[object Object]",
      "content": null
    }
  }
}

content.graphql

 export const content = {
      "metadata": {
        "obj1": "600",
        "boj2": "xx"
      },
      "data": [
        {
          "content": {
            "title": "Hellow",
            "description": "Hello World",
            "paragraphs": [{
              "title": "Website terms of use",
              "RTFtext": 'some text',
              "text": 'Do you have questions'
            }]
          },
          "name": "Content",
          "source": {
            "created": "2017/11/08 17:09:44",
          }
        }
      ]
    }

query.graphql

type Content {
   metadata: String
   content: String
}

api.ts

type Query {
  content: Content
}

query.ts

import { content } from '../mocks/legal-information';
  getContent () {
    return content;
  }

1 个答案:

答案 0 :(得分:0)

Apollo似乎正在尝试将您的content对象与该架构进行匹配。

您已将metadata声明为(可空)String类型。如果Apollo调用content.metadata.toString(),它将得到the default Object.toString output,它与您在输出中看到的[object Object]相匹配。

您已将content声明为(可空)String类型。您提供的对象没有content字段,因此Apollo生成null

您根本没有在GraphQL模式中声明data,因此Apollo会忽略它。

您可能需要扩展架构以显式地建模您希望返回的所有数据。鉴于您所显示的内容,这可能始于

type Metadata {
  obj1: String!
  boj2: String!
}
type DataItem {
  content: ???
  name: String!
  source: ???
}
type Content {
  metadata: Metadata!
  data: [DataItem!]!
}