GraphQL可以查询第三方API吗?

时间:2018-05-31 18:36:36

标签: reactjs express graphql

我是GraphQL的新手,如果我可以使用它来查询外部的第三方API数据,我很好奇。我有一个快速后端和一个反应前端,我以贵金属的价格向第三方API发送GET请求。

API回应了一个充满了我不需要的东西的大对象,但我仍然可以通过HTTP获得。例如,API正在返回:

{
    "gold_bid_usd_toz": "1303.58",
    "gold_ask_usd_toz": "1304.58",
    "gold_change_dollar_usd_toz": "1.23",
    "gold_change_percent_usd_toz": "0.09%",
    "gold_high_usd_toz": "1306.51",
    "gold_low_usd_toz": "1299.85",
    "gold_londonfix_am": "1320.7",
    "gold_londonfix_pm": "1319.92",
    "silver_bid_usd_toz": "16.5",
    "silver_ask_usd_toz": "16.6",
    "silver_change_dollar_usd_toz": "-0.02",
    "silver_change_percent_usd_toz": "-0.13%",
    "silver_high_usd_toz": "16.6",
    "silver_low_usd_toz": "16.46",
    "silver_londonfix": "16.6",

    ...LOTS MORE...
}

如果我只对两个属性感兴趣,我可以这样做:

query {
   gold_bid_usd_toz
   silver_bid_usd_toz
}

我不确定是否必须控制后端数据才能使用GraphQL。感谢。

1 个答案:

答案 0 :(得分:2)

您可以直接从解析程序返回您的请求回复。

然后在匹配此解析器的前端查询中,仅获取您要求的内容。

后端:

rootQuery {
  resolverName: () => getThirdParty
}

前端:

query {
 resolverName {
   whatYouWant1
   whatYouWant2
 }
}

您的查询和解析程序都应该与您的graphql架构匹配,但不能与第三方响应匹配。