Я пытаюсь использовать apollo-link-rest
с API Звездных войн и получаю некоторые ошибки.
import { InMemoryCache } from "apollo-cache-inmemory";
import { ApolloClient } from "apollo-client";
import { RestLink } from "apollo-link-rest";
import gql from "graphql-tag";
// node environment?
const fetch = require("node-fetch");
global.fetch = fetch;
global.Headers = fetch.Headers;
const restLink = new RestLink({
endpoints: { swapi: "https://swapi.co/api/" }
});
const client = new ApolloClient({
link: restLink,
cache: new InMemoryCache()
});
const query = gql`
query people {
search
@rest(type: "Search", path: "people/?search=skywalker", endpoint: swapi) {
count
results {
name
}
}
}
`;
client
.query({ query })
.then(response => console.log(JSON.stringify(response)))
.catch(err => console.log(err));
Ошибка:
Missing field __typename in {
"name": "Luke Skywalker"
}
Missing field __typename in {
"name": "Anakin Skywalker"
}
Missing field __typename in {
"name": "Shmi Skywalker"
}
Я знаю, что могу изменить это значение InMemoryCache({ addTypename: false })
, чтобы устранить ошибки, но я не знаю, как повлияет на кеширование, если установить addTypename
на false
.
Может ли кто-нибудь указать мне правильное направление?
Ура!