apollographql / apollo-link-rest

Use existing REST endpoints with GraphQL
MIT License
791 stars 122 forks source link

Feature Request: integrate with apollo-link-timeout #235

Open komyg opened 5 years ago

komyg commented 5 years ago

Hi,

Is it possible to configure a timeout for the Apollo Link REST calls? I tried to use the Apollo Link Timeout, but it is only working for the standard Graphql calls.

My configuration is this:

const timeoutLink = new ApolloLinkTimeout(Number(process.env.REACT_APP_TIMEOUT));

const restLink = new RestLink({
  credentials: 'include',
  uri: process.env.REACT_APP_API_URL,
});

const httpLink = new HttpLink({
  credentials: 'include',
  uri: process.env.REACT_APP_GRAPHQL_URL,
});

export const apolloClient = new ApolloClient({
  link: ApolloLink.from([authLink, errorLink, timeoutLink, restLink, httpLink]),
  connectToDevTools: true,
  cache: localCache,
  resolvers: localResolvers,
  assumeImmutableResults: true,
});

Am I doing something wrong?

Thanks, Felipe

/label question

fbartho commented 5 years ago

Hi @komyg !!

I had never heard of ApolloLinkTimeout!

Looking at the implementation here: https://github.com/drcallaway/apollo-link-timeout/blob/master/src/timeoutLink.ts

I see that they add a fetchOptions hash & an AbortController to Apollo’s Link Context I think we could integrate with that.

If you’re interested in contributing support for that, let me know! I hesitate to enable something like that by default for everyone, since they might want different timeouts for GraphQL vs link-rest calls, and maybe different per REST endpoint. But maybe we can build a parallel feature.

komyg commented 5 years ago

Hi @fbartho,

Sorry for the delay in my response.

Yes, I would like to help, but currently I am delivering a big project, so I would only be available after november 15. Is that ok?

Thanks, Komyg

fbartho commented 2 years ago

@komyg please let me know if you or someone else wants to contribute a timeout-integration! Happy to review a PR.

komyg commented 2 years ago

Hi @fbartho, I am sorry, but I don't have the time to contribute right now.

Feel free to close this issue, if you want.

wootencl commented 2 years ago

@fbartho looking at possibly taking a crack at implementing this feature but I'll admit I'm not familiar with apollo-link-rest's codebase. Any additional insight into the implementation would be greatly appreciated 🙏.

fbartho commented 2 years ago

@wootencl — I haven’t looked at Apollo-link-timeout, but reading the description — maybe it’s worth reviewing that library and the PR: https://github.com/apollographql/apollo-link-rest/pull/296