我正在尝试在iOS应用程序中使用带有lambda函数的api网关来查询mongodb数据库。
执行效果很好。 事实上,在响应模型中有一些我不理解的东西。
在我的lambda函数中,如果dictionnary的键不是“学校”,它根本不起作用: Lambda函数
exports.handler = function(event, context, callback) {
MongoClient.connect(uri, function(err, client) {
const collection = client.db("test").collection("test2");
collection.find({}).sort({"ranking_clique" : -1}).toArray(function(err, result) {
if (err) throw err;
context.callbackWaitsForEmptyEventLoop = false;
var dic = {schools : result} // if I change schools by another word, it doesn't work in the api result (of course I change it in the others body)
client.close();
context.done(null,dic);
});
});
}
API网关机构响应
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "TestOutputModel",
"type": "object",
"properties": {
"schools": { // // if I change schools by another word, it doesn't work in the api result
"type": "array",
"items": {
"type": "object",
"properties": {
"nom": { "type": "string" }
}
}
}
}
}
iOS SDK Aws模型
import Foundation
import AWSCore
@objcMembers public class TestOuputModel : AWSModel {
var schools: [TestApiOutputModel_categories_item]?
public override static func jsonKeyPathsByPropertyKey() -> [AnyHashable : Any]!{
var params:[AnyHashable : Any] = [:]
params["schools"] = "schools"
return params
}
class func schoolsJSONTransformer() -> ValueTransformer{
return ValueTransformer.awsmtl_JSONArrayTransformer(withModelClass: TestApiOutputModel_categories_item.self);
}
}
iOS Aws模型
import Foundation
import AWSCore
@objcMembers public class GetinapiPartnersModel_partners_item : AWSModel {
var nom: String?
public override static func jsonKeyPathsByPropertyKey() -> [AnyHashable : Any]!{
var params:[AnyHashable : Any] = [:]
params["nom"] = "nom"
return params
}
}
我没有生成iOS Aws SDK。该网站目前无法使用。所以我根据之前的应用程序编写了它。
在综合中,如果我用3个文件中的另一个单词更改关键词“学校”,它就不再起作用了。
有人可以告诉我为什么吗?
此致