More Related Content Similar to Jawsug chiba API Gateway (20) More from Takuro Sasaki (20) Jawsug chiba API Gateway17. 多様化するデバイス iOS
2011年 2012年 2013年 2014年
Version 5.0 6.0 7.0 8.0
Device
iPhone4s
iPad 3rd
iPhone5
iPad 4th
iPad mini
iPhone5S
iPhone5C
iPad Air
iPad mini 2
iPhone6
iPhone6 plus
iPad Air2
iPad mini 3
18. 多様化するデバイス Android
2011年 2012年 2013年 2014年
Version 2.3 - 4.0 4.1 - 4.3 4.4 5.0
Device
Galaxy S2
Regza Phone
Arrows X
MEDIAS LTE
Xperia NX
Galaxy Note
Xperia SX
Arrows A
AQUOS Phone EX
Galaxy note3
Nexus5
Xperia Z3
Android Wear
Nexus6
Nexus9
27. スタブAPIの作成(After API Gateway)
API Gatewayのモック機能を利用
{ JSON }
管理コンソールから
JSONファイルの
入力
リクエスト
レスポンス
簡単・便利
Mock機能で静的JSONを返すAPIを簡単につくれる
レスポンスコードも変えられる
詳細は、こちら
APIGateway - Amazon API GatewayでMockを定義してみる - Qiita
http://qiita.com/Keisuke69/items/0852d536110b2fa6e087
モバイル
API Gateway
AWS Management
Console
42. API Gateway+LambdaでSlow Mock
レスポンスの遅いSlow Mockを作ることでUXの調整
リクエスト
N秒後に
レスポンス
Slow Mockの意義
実際のAPIのレスポンスは、遅い場合もある
レスポンスの速いMockだけでUXを検討すると、後工
程で困る場合がある
数秒、数十秒の遅延を与えて、UXを調整していく
モバイル API Gateway
リクエスト
レスポンス
Sleep処理
Lambda
43. API Gateway+LambdaでSlow Mock
Slow Mockの作り方
console.log('Loading function');
exports.handler = function(event, context) {
console.log('before =', new Date().getTime());
var time = 3000;
var d1 = new Date().getTime();
var d2 = new Date().getTime();
while (d2 < d1 + time) {
d2 = new Date().getTime();
}
console.log('after =', new Date().getTime());
context.succeed("Success");
};
簡単に作るのであれば、LambdaでSleepするだけ。
API GatewayでMockを返す。
真面目に作るのであれば、引数・返却値を返すようにする
52. Mapping Templateの利用 リクエスト編
Modelの作成
{
"operation": "update",
"conference_id": 1,
"page_number": 4
} {
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "SyncSlide",
"type": "object",
"properties": {
"operation": { "type": "string" },
"conference_id": { "type": "number" },
"page_number": { "type": "number" }
}
}
元のJSON
Model
詳細は、こちら
Working with Models and Mapping Templates in Amazon API Gateway
http://docs.aws.amazon.com/apigateway/latest/developerguide/models-mappings.html
53. Mapping Templateの利用 リクエスト編
Mapping Templateで引数を利用
{
"operation": "update",
"conference_id": "1",
"page_number": $input.json('$.page_number')
}
$input.json( $.項目名 )で、JSONの値を代入
$input.json( $ )で、JSON全体を渡すことも
QueryStringの場合は、$input.params('foo')
その他、変数が幾つかある
詳細は、こちら
API Gateway Mapping Template Reference
http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-
reference.html
55. JSON XMLに変換
#set($root = $input.path("$"))
<xml>
<id>
$root.id
</id>
<title>
$root.title
</title>
</xml>
{
"id": 1,
"name": "hoge"
}
元のJSON
Mapping Template
出力されたXML