Я был направлен на этот пост одним из разработчиков AWS iOS SDK на Github ( ссылка ), но я боюсь, что все еще не понимаю, как получить доступ ксквозной лямбда-ответ, который возвращается через API-шлюз.
Если вы прочитаете мой вопрос об использовании iOS SDK по этому вопросу , вы увидите, что я могу успешно вызывать мой REST API черезмое простое приложение для iOS.Журналы Cloudwatch подтверждают, что Lambda возвращает правильный ответ.Но я не знаю, как получить доступ к этим значениям в result
.
Вот мой код, который вызывает мой REST API, который основан на "calc" REST API , представленном вДокументация по API Gateway.
@IBAction func userInvokeApi(_ sender: UIButton) {
print("You clicked invoke api...")
let client = SVTLambdaGateClient.default()
client.calcGet(operand2: "3", _operator: "+", operand1: "5").continueWith{ (task: AWSTask?) -> AnyObject? in
if let error = task?.error {
print("Error occurred: \(error)")
return nil
}
if let result = task?.result {
// Do something with result
print("The raw result is... \(result)")
}
return nil
}
}
Да, я понимаю, что все, что я делаю, - это распечатка адреса result
.Все, что я пытался напечатать значения, терпит неудачу!
ОБНОВЛЕНИЕ Когда я пытаюсь result.responseData
, как рекомендуется ниже, я получаю следующее сообщение:
Value of type 'Empty' has no member 'responseData'
Empty
относится к модели API-шлюза для сквозных ответов от функции Lambda;он не выполняет преобразование данных .. просто отправляет их клиенту.Вот как выглядит мой Empty.swift
:
import Foundation
import AWSCore
@objcMembers
public class Empty : AWSModel {
public override static func jsonKeyPathsByPropertyKey() -> [AnyHashable : Any]!{
var params:[AnyHashable : Any] = [:]
return params
}
}
Кто-нибудь может мне здесь помочь?