2017-09-25 2 views
0

Je veux combiner les paramètres du corps de la requête et de la chaîne de requête avant de l'envoyer à lambda. Disons que j'ai une entité Lambda comme ci-dessous:Aws Api Gateway Integration Request Comment ajouter une propriété pour demander un corps?

Class Person { 
private String firstName; 
private String lastName; 
private String language; 
} 

Et le JSON qui a envoyé à la passerelle api est {"firstName":"Foo","lastName":"Bar"} Comme vous le voyez « langue » champ manque dans le corps de la demande. Je veux obtenir ce champ de langue de querystring et ajouter à json. Comment puis-je atteindre tihs?

Y a-t-il un moyen de faire dans demande d'intégration section? Par exemple:

$input.json(x).append("language":"$input.params('name')") 

Je ne pouvais pas trouver de précieuses informations. Merci d'avance.

Répondre

2

Vous pouvez utiliser le modèle de mappage de corps dans la section de demande d'intégration et obtenir des chaînes de requête et de corps de requête. Construire un nouveau modèle JSON au mappage de corps, qui aura des données provenant du corps de la requête et de la chaîne de requête. Au fur et à mesure que nous ajoutons le modèle de mappage de corps, votre logique métier obtiendra le code JSON que nous avons créé au niveau du modèle de mappage de corps.

intérieur modèle de mappage du corps pour obtenir la chaîne de requête s'il vous plaît faire,

$input.params('querystringkey') 

Par exemple à l'intérieur modèle de mappage du corps,

#set($inputRoot = $input.path('$')) 
{ 
"firstName" : "$input.path('$.firstName')", 
"lastName" : "$input.path('$.lastName')" 
"language" : "$input.params('$.language')" 
} 

S'il vous plaît lire https://aws.amazon.com/blogs/compute/tag/mapping-templates/ pour plus de détails sur le modèle de cartographie corporelle

+0

I Je ne veux pas construire un nouveau JSON parce que si je le fais, je dois changer une entité dans Lambda. Merci. –

+0

Vous pouvez ajouter l'intégralité du modèle de mappage de corps dans le corps sans modifier la structure de l'entité. Ou êtes-vous heureux d'obtenir une chaîne de requête directement dans le code? J'ai changé ma réponse un peu. –