I am trying to use apollo-link-rest
with the Star Wars API and I am getting some errors.
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));
Errors:
Missing field __typename in {
"name": "Luke Skywalker"
}
Missing field __typename in {
"name": "Anakin Skywalker"
}
Missing field __typename in {
"name": "Shmi Skywalker"
}
I know I can change set this InMemoryCache({ addTypename: false })
to remove the errors, but I don't know what the impact on caching will be if I set addTypename
to false
.
Can someone point me in the right direction on this?
Cheers!