Apollo iOS 1.5 迁移指南
从 1.3 - 1.4 迁移到 1.5
本指南描述了将代码从版本 1.3 或 1.4 迁移到 1.5 的过程Apollo iOS。
主要更改
版本 1.5 是一个次要版本升级,对于大多数用户无需进行迁移。
- 对于使用标准
ApolloClient
类的用户,此版本将无缝升级,无需对现有代码进行任何更改。 - 对于具有符合
ApolloClientProtocol
的自定义客户端实现的用户,需要简单的迁移。
虽然我们努力使次要版本的升级路径无缝,但如果没有这个迁移,就无法实现这些改进。对于受影响的用户,请按照此迁移指南更新到 1.5。
请求上下文
1.5 添加了将自定义请求上下文传递给网络 API 的功能。现在,fetch
、watch
、perform
、upload
或 subscribe
方法现在接受一个可选的 RequestContext
参数,该参数用于构建请求,并在拦截器请求链中的任何拦截器中可用。
如果你有符合 ApolloClientProtocol
的代码,如下例所示:
v1.5 迁移示例
class MyCustomClient : ApolloClientProtocol {public func fetch<Query: GraphQLQuery>(query: Query,cachePolicy: CachePolicy = .default,contextIdentifier: UUID? = nil,queue: DispatchQueue = .main,resultHandler: GraphQLResultHandler<Query.Data>? = nil) -> Cancellable {..}// other ApolloClientProtocol methods}
你只需要将新属性添加到方法定义中
v1.5 迁移示例
class MyCustomClient : ApolloClientProtocol {public func fetch<Query: GraphQLQuery>(query: Query,cachePolicy: CachePolicy = .default,contextIdentifier: UUID? = nil,context: RequestContext? = nil,queue: DispatchQueue = .main,resultHandler: GraphQLResultHandler<Query.Data>? = nil) -> Cancellable {..}// other ApolloClientProtocol methods}