Api Gateway和Lambda函数:响应正文

时间:2018-06-05 12:56:56

标签: ios node.js swift aws-lambda aws-api-gateway

我正在尝试在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个文件中的另一个单词更改关键词“学校”,它就不再起作用了。

有人可以告诉我为什么吗?

此致

0 个答案:

没有答案