Может ли GraphQL запрашивать сторонний API? - PullRequest
0 голосов
/ 31 мая 2018

Я новичок в GraphQL и мне было любопытно, смогу ли я использовать его для запроса внешнего API данных третьей стороны.У меня есть экспресс-бэкэнд и интерфейс реакции, и я отправляю запрос GET стороннему API по цене драгоценных металлов.

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 голосов
/ 31 мая 2018

Вы можете вернуть свой ответ на запрос непосредственно из резолвера как есть.

Затем в запросе внешнего интерфейса, соответствующем этому резольверу, получите только то, что вы просили.

Бэкэнд:

rootQuery {
  resolverName: () => getThirdParty
}

Внешний интерфейс:

query {
 resolverName {
   whatYouWant1
   whatYouWant2
 }
}

Ваш запрос и распознаватель должны соответствовать вашей схеме graphql, но не ответу третьей стороны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...