我已经为我的 API 生成了“适用于 iOS 的 API Gateway SDK”。在 SDK 中,我有两种类型的文件,一种用于发出请求,另一种用于处理响应 -
TESTGetAllDataClient
TESTEmpty
let serviceClient = TESTGetAllDataClient.defaultClient()
serviceClient.rootPost("2015").continueWithBlock{ (task:AWSTask!) -> (AnyObject!) in
if task.error != nil {
print(task.error)
} else {
let resultDict :TESTEmpty = task.result as! TESTEmpty
}
return nil
}
这里的
TestEmpty
是response
的类型,但是在我从API Gateway SDK获得的TestEmpty
类中,不包含任何提取字典形式对象的方法。 TestEmpty
实现类如下:
@implementation TESTEmpty
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{
};
}
@end
我需要编写自己的方法来处理响应还是由 SDK 提供?如果您对此有所了解,请回复。我是 AWS API Gateway 的新手。
iOS SDK 根据 API 中定义的模型生成类。有一个名为“Empty”的默认模型,由“TestEmpty”类表示。由于该模型没有定义任何属性/属性,因此您将无法从中获取数据。
为了以有意义的方式使用生成的 SDK,您需要使用模型定义 API 的预期输出(请参阅使用模型和映射模板进行负载映射)。定义这些模型后,请确保在方法的“方法执行”页面中将它们用作“响应模型”。
当您按照上述步骤并重新部署 API 时,生成的 SDK 应包含附加到方法的模型类。然后,您可以使用 SDK 中的那些从 HTTP 响应中提取数据。
希望这有帮助,
Jurgen,API 网关