Ios 在Swift中使用API网关AWSTask对象的正确方法是什么
Github()上的一位AWS iOS SDK开发人员向我发出了指示,但我仍然不知道如何访问通过API网关返回的passthrough Lambda响应 如果您阅读,您将看到我能够通过简单的iOS应用程序成功地调用RESTAPI。Cloudwatch日志验证Lambda是否返回正确的响应。但我不知道如何在Ios 在Swift中使用API网关AWSTask对象的正确方法是什么,ios,swift,amazon-web-services,aws-api-gateway,aws-amplify,Ios,Swift,Amazon Web Services,Aws Api Gateway,Aws Amplify,Github()上的一位AWS iOS SDK开发人员向我发出了指示,但我仍然不知道如何访问通过API网关返回的passthrough Lambda响应 如果您阅读,您将看到我能够通过简单的iOS应用程序成功地调用RESTAPI。Cloudwatch日志验证Lambda是否返回正确的响应。但我不知道如何在结果中访问这些值 下面是调用RESTAPI的代码,它基于API网关文档中的特性 @IBAction func userInvokeApi(_ sender: UIButton) { pr
结果中访问这些值
下面是调用RESTAPI的代码,它基于API网关文档中的特性
@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.responseData
时,我收到以下消息:
Value of type 'Empty' has no member 'responseData'
Empty
指用于Lambda函数的直通响应的API网关模型;它不会对数据执行任何转换。。只需将其发送到客户端。以下是我的Empty.swift
的外观:
import Foundation
import AWSCore
@objcMembers
public class Empty : AWSModel {
public override static func jsonKeyPathsByPropertyKey() -> [AnyHashable : Any]!{
var params:[AnyHashable : Any] = [:]
return params
}
}
有人能帮我吗?我相信它在responseData
中。尝试打印(字符串(数据:result.responseData!,编码:.utf8)!)
当然,不要在生产代码中强制打开这些选项。天啊,我真希望这样能起作用。但是Xcode告诉我这是一个错误:类型为Empty的值没有成员响应data
。在我的例子中,API网关模型被称为Empty,它基本上对Lambda函数的响应没有任何影响。。。因此它是通过的。我将在上面添加一些关于空的.swift文件的详细信息,该文件是作为我的API网关iOS swift SDK的一部分生成的,这正是我在尝试访问Lambda函数返回的内容时所看到的错误:类型为“Empty”的值没有成员“”
我相信它在responseData
中。尝试打印(字符串(数据:result.responseData!,编码:.utf8)!)
当然,不要在生产代码中强制打开这些选项。天啊,我真希望这样能起作用。但是Xcode告诉我这是一个错误:类型为Empty的值没有成员响应data
。在我的例子中,API网关模型被称为Empty,它基本上对Lambda函数的响应没有任何影响。。。因此它是通过的。我将在上面添加一些关于作为API Gateway iOS swift SDK一部分生成的空.swift文件的详细信息。事实上,当我尝试所有合理的尝试访问我知道的Lambda函数将返回的内容时,我几乎看到了这个错误:类型为“Empty”的值没有成员“”