-
Notifications
You must be signed in to change notification settings - Fork 731
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Discussion: What would an Apollo Link implementation look like? #173
Comments
Really happy you're opening this issue, and I think you're asking exactly the right questions. Would be great to bring more people together to figure this out. I'm traveling right now, but maybe we could set up a meeting for next week. Let me give you some preliminary answers, but we should probably schedule a call to talk about this in more depth and discuss next steps:
|
Great to get some good feedback on this! |
@nubbel I just created an |
I think we can just use this issue to continue the discussion. Here is the gist @nubbel created to discuss a type-safe |
Quick update: I've drafted an implementation and like to share some details on some of the design decisions I made. Terminating vs. Non-Terminating LinksApolloLink has a concept of terminating and non-terminating links. In the Javascript implementation, the link type is determined at runtime. CancellationRequests need to be cancellable, that means links need to be cancellable. I considered three options to achieve that:
I chose the first third option and created an
|
I managed to get rid of |
Hey!
Modifying/intercepting the way the Client communicates with the network is a popular request by the community. Solutions have been proposed in #131 and #172, but have not been accepted. Instead a more generic design akin to Apollo Link was suggested.
I'm interested in having a stab at implementing Apollo Link for apollo-ios.
Before I get down to coding, I'd like to discuss a few points:
Let me know what you think!
@martijnwalraven, @MrAlek, @DarkDust
The text was updated successfully, but these errors were encountered: