Как передать пользовательский заголовок запроса AWS AppSync в iOS-клиент?

AWS AppSync поддерживает передачу пользовательских заголовков от клиентов и доступ к ним в ваших решателях GraphQL с помощью $ context.request.headers.
Интересно, как я могу это сделать в iOS-клиенте?
Спасибо:)
https://docs.aws.amazon.com/appsync/latest/devguide/resolver-context-reference.html

2 ответа

Решение

Я только что нашел способ передать дополнительный заголовок запроса AWS AppSync в клиенте iOS:)
Вот пример класса 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
    }

}

В последней версии aws-mobile-appsync-sdk-ios SDK 2.6.22Проблема устранена.

Другие вопросы по тегам