Функция Api Gateway и Lambda: тело ответа - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь использовать в приложении iOS шлюз API с лямбда-функцией для опроса базы данных mongodb.

Выполнение работает довольно хорошо.На самом деле, в модели ответов есть что-то, чего я не понимаю.

В моей лямбда-функции, если ключом словаря является что-то кроме «школ», он вообще не работает: Лямбда-функция

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
    }
}

Я не создавал SDK iOS Aws.Сайт не работает в настоящее время.Поэтому я написал его на основе предыдущего приложения, которое работает.

В синтезе, если я заменю ключевое слово «школы» другим словом в 3 файлах, оно больше не будет работать.

Может кто-нибудь сказать мне, почему?

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...