如何在 iOS 客户端中传递 AWS AppSync 自定义请求标头?
Posted
技术标签:
【中文标题】如何在 iOS 客户端中传递 AWS AppSync 自定义请求标头?【英文标题】:How to pass AWS AppSync custom request header in iOS client? 【发布时间】:2019-01-26 16:58:58 【问题描述】:AWS AppSync 支持从客户端传递自定义标头并使用 $context.request.headers 在您的 GraphQL 解析器中访问它们。我想知道我该怎么做在 ios 客户端中?谢谢 :) https://docs.aws.amazon.com/appsync/latest/devguide/resolver-context-reference.html
【问题讨论】:
【参考方案1】:我刚刚找到了一种在 iOS 客户端中传递额外 AWS AppSync 请求标头的方法 :)这是 AppSyncManager
的示例类
final class AppSyncManager
static func instance() -> AWSAppSyncClient
let tmpURL = URL(fileURLWithPath: NSTemporaryDirectory())
let databaseURL = tmpURL.appendingPathComponent(databasName)
let urlSessionConfiguration = URLSessionConfiguration.default
// Our request header => In resolve mapping: $context.request.headers.author
urlSessionConfiguration.httpAdditionalHeaders = ["author": CognitoUserPoolManager.instance.author]
let appSyncConfig = try! AWSAppSyncClientConfiguration(url: endPointURL,
serviceRegion: region,
userPoolsAuthProvider: CognitoAuthProvider(),
urlSessionConfiguration: urlSessionConfiguration,
databaseURL: databaseURL)
let appSyncClient = try! AWSAppSyncClient(appSyncConfig: appSyncConfig)
appSyncClient.apolloClient?.cacheKeyForObject = $0["id"]
return appSyncClient
【讨论】:
如何在 android 中实现?【参考方案2】:在最新的aws-mobile-appsync-sdk-ios SDK 2.6.22
中,问题正在修复中。
【讨论】:
以上是关于如何在 iOS 客户端中传递 AWS AppSync 自定义请求标头?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Cloudformation 脚本执行期间将 Cognito UserPoolID、客户端密码传递给 AWS Lambda?
如何通过 AWS AppSync 客户端将保存字符串的变量传递给 GraphQL 查询?