2017-06-21 12 views

答えて

1

この方法です。 s-templates.jsonを使用してこのコードベースを追加するAPI応答を管理できます。

ValidationError":{ 
    "selectionPattern": ".*ValidationError.*", 
    "statusCode": "400", 
    "responseParameters": { 
    "method.response.header.Access-Control-Allow-Headers": "'Content- 
    Type,X-Amz-Date,Authorization,X-Api-Key,Cache-Control,Token'", 
    "method.response.header.Access-Control-Allow-Methods": "'*'", 
    "method.response.header.Access-Control-Allow-Origin": "'*'" 
    }, 
    "responseModels": {}, 
    "responseTemplates": { 
    "application/json": "$input.path('$.errorMessage')" 
    } 
} 

このようにして、私は400のstatusCodeと有効なメッセージで自分の応答を返します。

module.exports.handler = function(event, context) { 
    const validationError={ 
    statsCode:"ValidationError", 
    section:"Login", 
    validationType:"emailConfirmation", 
    message:"Email is not confirmed", 
    otherInfo:"Would you like to get the email again?", 
    client:"web|ios|android" 
    } 
    context.done(null, response); 
}; 
3

エラーで応答したい場合は、エラーレスポンス構造で成功コールバックを使用する必要があります。

context.fail()コールバックを使用している場合、AWSはラムダが技術的に失敗したとみなし、APIゲートウェイに存在するデフォルトのマッピングで応答します。

サンプルエラー応答:私はAPI Gatwayを変更することができます

'use strict'; 

module.exports.hello = (event, context, callback) => { 
    const response = { 
    statusCode: 400, 
    body: JSON.stringify({ 
     errors:[{ 
     code: "226", 
     message:"Password confirmation do not match" 
     }] 
    }), 
    }; 
    context.done(null, response); 
}; 
+0

申し訳ありません。私はcontext.failを使用していません。 context.doneを使用してエラーを送信しています。ステータスコードと有効なmsgをクライアントに送信する必要があります。ユーザーが有効なパスワードなしでログインしようとしたときと同様に、私はメッセージを送信する必要があります。 –

+0

サンプルを完全なラムダに更新しました。更新されたサンプルでは、​​依然として応答が間違って設定されています。 –

+0

ステータスコード200を返します。有効なメッセージとともにステータスコード400を送信する必要があります。ユーザーが有効なパスワードなしでログインしようとすると、ステータスコード400と有効なメッセージが送信されます。 –

関連する問題