首页 > 解决方案 > GQL 架构不返回嵌套对象

问题描述

下面是我从 Rest API 得到的响应。

{
  'metadata': {
    'cache': '600',
  },
  "data": [{
    "name": "Content",
    "content": {
      "title": "Legal information",
      "paragraphs": [
        {
          "title": "Website terms of use1",
          "text": "Sample Text",
        }]
    }
  }]
}

我的 GQL 架构如下所示,

type Metadata {
  cache: String
}

type Content {
  metadata: Metadata
  data
}

我想要 GQL,把里面的任何东西都发给我data,没有任何架构。

怎么办,请帮忙

标签: graphqlapollo-client

解决方案


GraphQL 不是这样工作的。您必须提供可能返回的每个具体对象类型的完整定义。

其他一些 SO 答案提出了一些技巧,例如声明 ascalar JSON然后将自由格式的数据序列化为 JSON 字符串并返回它,但这变得难以使用。(您不能直接查询字段内的data: String字段,即使它恰好被编码为 JSON。)

当您描述问题时,您最好直接公开后端 REST API,而不是尝试将其包装在模糊的 GraphQL 外观中。


推荐阅读