【问题标题】:Can GraphQL query a third party API?GraphQL 可以查询第三方 API 吗?
【发布时间】:2018-11-10 20:18:20
【问题描述】:

我是 GraphQL 的新手,我很好奇是否可以使用它来查询外部的第三方 API 以获取数据。我有一个 express 后端和一个 react 前端,我正在向第三方 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。谢谢。

【问题讨论】:

    标签: reactjs express graphql


    【解决方案1】:

    您可以直接从解析器返回您的请求响应。

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

    后端:

    rootQuery {
      resolverName: () => getThirdParty
    }
    

    前端:

    query {
     resolverName {
       whatYouWant1
       whatYouWant2
     }
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-31
      • 2019-04-24
      • 2021-05-01
      • 2017-06-28
      • 2020-05-21
      • 2013-12-08
      • 2019-03-31
      相关资源
      最近更新 更多