Open
Conversation
BREAKING CHANGE: Public API now uses native async/await instead of callbacks. - Update Apollo dependency from 1.17.0 to 2.0.4 - Rewrite interceptors for new Apollo 2.0 architecture - Replace callback-based API with async throws - Add NoCacheInterceptor for explicit cache-less operation - Remove ObserverContextStore (single interceptor pattern) - Add Sendable conformance to error types Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…uests Introduce `GraphQLAPIConfiguration` and `GraphQLRequestConfiguration` structs to simplify and centralize the configuration for the `GraphQLAPIAdapter` and individual GraphQL requests.
The `README.md` has been updated to reflect the new Apollo iOS dependency version and the updated usage of `GraphQLAPIAdapter` which now requires a configuration object and uses `async throws` for fetch and perform operations.
Corrected `swiftPackageManager` to `swiftPackage` in configuration example and fixed typo in Xcode build phase script instructions. Updated the `apollo-ios-cli` binary.
samoilyk
reviewed
Jan 15, 2026
samoilyk
approved these changes
Jan 26, 2026
Resolve conflicts by keeping the new API from HEAD: - GraphQLAPIConfiguration-based initialization - Async/await API with throws - Simplified NetworkInterceptorProvider - URLError handling in GraphQLAPIAdapterError - Updated tests for new API Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR upgrades
apollo-iosto version 2.0, modernizing the API to use async/await and improving the overall architecture. The adapter initialization is now handled by a dedicatedGraphQLAPIConfigurationstruct, and completion handlers have been replaced with throwing async functions. The interceptor system has been updated to align with the new standards in Apollo 2.0.Key Features
apollo-ioshas been updated from version1.17.0to2.0.4.GraphQLAPIAdapternow usesasync/awaitforfetchandperformmethods, replacing the previous completion handler-based approach.GraphQLAPIConfigurationhas been introduced to provide a cleaner and more robust way to configure the adapter.GraphQLRequestConfigurationallows for per-request customizations, such as adding extra headers.InterceptorProviderarchitecture in Apollo iOS 2.0.URLErrorandCancellationError, providing more specific error types like.connectionand.cancelled.SQLite.swiftdependency, which is no longer required by Apollo 2.0, has been removed.API Migration
GraphQLAPIAdapter(url: ...)let config = GraphQLAPIConfiguration(url: ...)GraphQLAPIAdapter(configuration: config)adapter.fetch(query: q) { result in ... }let data = try await adapter.fetch(query: q)adapter.perform(mutation: m) { result in ... }let data = try await adapter.perform(mutation: m)RequestHeadersprotocol used as a context object.GraphQLRequestConfigurationstruct passed to methods.