2016-04-01 10 views
1

私は、サーバーからデータ "プロフィール"を受け取り、他の値 "appKnowsThisKey"とともにAPIゲートウェイに送信するiOSアプリを持っています。AWS API Gatewayにデータを渡すときに斜めになる方法は?

私は、iOSアプリが「プロフィール」の構造に不自然なままでいるようにしたいと思います。

辞書のキーを知っているAPIゲートウェイでモデルを作成しました。 iOS版へ

{ 
"$schema": "http://json-schema.org/draft-04/schema#", 
"title": "ExampleModel", 
"type": "object", "properties": { 
    "appKnowsThisKey" : {"type": "string" }, 
    "profile": { 
     "type": "object", "properties": { 
      "key1": {"type": "string" }, 
      "key2": {"type": "string" }, 
      "key3": { 
       "type": "array", "items": {"type": "string" } 
      } 
     } 
    } 
}} 

API Gatewayの展開は、スウィフトクラスを作成しました:ExampleModel

ExampleModel_profile私は[String:AnyObject]内の値を保持するiOSアプリ内のオブジェクトprofileを持っています。

iOSの辞書をプロフィールのAPIゲートウェイモデルに割り当てるにはどうすればよいですか?たとえば、ExampleModelの "profile"をstringに再定義し、JSON文字列を渡しますか?

答えて

2

"profile"の構造にiOSアプリに依存しないようにするには、ExampleModelで "profile"を文字列として定義し、JSON文字列を渡すしかありません。

将来構造が変更されると、統合要求マッピングテンプレートを使用して、エンドポイントが期待しているもののJSONをマップできます。

{ 
    "someNewField" : "$input.json('$.profile.someOldField')" 
} 
+0

ありがとうございます;私はこれが最良の解決策であることに同意します。 APIGはすばらしい砂糖を加えます。 – Carl