AWS SDK for JavaScript v2 のサポート終了が間近に迫っていることが発表
JSON の使用
JSON は、人間にも機械にも読み取り可能な、データ交換のための形式です。JSON という名前は、JavaScript Object Notation の頭字語ですが、JSON の形式はどのプログラミング言語にも依存しません。
SDK for JavaScript は、リクエストを行うときに JSON を使用してサービスオブジェクトにデータを送信し、サービスオブジェクトからデータを JSON として受信します。JSON の詳細については、json.org
JSON は 2 つの方法でデータを表します。
オブジェクトは、順序が設定されていない一連の名前と値のペアです。オブジェクトは左中括弧 (
{
) と右中括弧 (}
) で囲んで定義します。それぞれの名前と値のペアは名前で始まり、続けてコロン、その後に値が続きます。名前と値のペアはカンマで区切ります。配列は、順序が設定された一連の値です。配列は左角括弧 (
[
) と右角括弧 (]
) で囲んで定義します。配列の項目はカンマで区切ります。
これは、オブジェクトの配列を含む JSON オブジェクトの例です。オブジェクトは、カードゲームのカードを表しています。各カードは 2 つの名前と値のペアで定義されます。1 つはそのカードを識別するための一意の値を指定し、もう 1 つは対応するカードイメージを指す URL を指定します。
var cards = [{"CardID":"defaultname", "Image":"defaulturl"}, {"CardID":"defaultname", "Image":"defaulturl"}, {"CardID":"defaultname", "Image":"defaulturl"}, {"CardID":"defaultname", "Image":"defaulturl"}, {"CardID":"defaultname", "Image":"defaulturl"}];
サービスオブジェクトパラメータとしての JSON
次の例では、シンプルな JSON を使用して Lambda サービスオブジェクトへの呼び出しのパラメータを定義します。
var pullParams = { FunctionName : 'slotPull', InvocationType : 'RequestResponse', LogType : 'None' };
pullParams
オブジェクトは、左右の中括弧内にコンマで区切られた、3 つの名前と値のペアによって定義されています。サービスオブジェクトメソッドの呼び出しにパラメータを指定する場合、呼び出す予定のサービスオブジェクトメソッドのパラメータ名によって名前が決まります。Lambda 関数を呼び出すとき、FunctionName
、InvocationType
、および LogType
は、Lambda サービスオブジェクトの invoke
メソッドの呼び出しに使用されるパラメータです。
サービスオブジェクトのメソッド呼び出しにパラメータを渡すとき、次の Lambda 関数の呼び出しの例に示されているように、メソッド呼び出しに JSON オブジェクトを渡します。
lambda = new AWS.Lambda({region: 'us-west-2', apiVersion: '2015-03-31'}); // create JSON object for service call parameters var pullParams = { FunctionName : 'slotPull', InvocationType : 'RequestResponse', LogType : 'None' }; // invoke Lambda function, passing JSON object lambda.invoke(pullParams, function(err, data) { if (err) { console.log(err); } else { console.log(data); } });
データを JSON として返す
JSON は、同時に複数の値を送信する必要があるアプリケーションの部分間でデータを渡すための標準的な方法を提供します。通常、API のクライアントクラスのメソッドは、コールバック関数に渡される data
パラメータに JSON を返します。例えば、Amazon S3 クライアントクラスの getBucketCors
メソッドの呼び出しは次のとおりです。
// call S3 to retrieve CORS configuration for selected bucket s3.getBucketCors(bucketParams, function(err, data) { if (err) { console.log(err); } else if (data) { console.log(JSON.stringify(data)); } });
data
の値は JSON オブジェクトです。この例では、指定された Amazon S3 バケットの現在の CORS 設定を記述する JSON です。
{ "CORSRules": [ { "AllowedHeaders":["*"], "AllowedMethods":["POST","GET","PUT","DELETE","HEAD"], "AllowedOrigins":["*"], "ExposeHeaders":[], "MaxAgeSeconds":3000 } ] }