template context aws amazon-web-services aws-lambda aws-api-gateway

amazon web services - context - Aws Api Gateway Integration Request ¿Cómo agregar una propiedad al cuerpo de la solicitud?



aws api gateway mapping template (1)

Puede usar la plantilla de asignación de cuerpo en la sección de solicitud de integración y obtener el cuerpo de la solicitud y las cadenas de consulta. Construya una nueva plantilla JSON en mapeo corporal, que tendrá datos del cuerpo de la solicitud y la cadena de consulta. A medida que agreguemos la plantilla de mapeo corporal, su lógica empresarial obtendrá el JSON que hemos construido en la plantilla de mapeo corporal.

Plantilla de mapeo del cuerpo interior para obtener la cadena de consulta, hazlo,

$input.params(''querystringkey'')

Por ejemplo, dentro de la plantilla de mapeo corporal,

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

Lea https://aws.amazon.com/blogs/compute/tag/mapping-templates/ para obtener más detalles sobre la plantilla de mapeo del cuerpo

Quiero combinar el cuerpo de la solicitud y los parámetros de la cadena de consulta antes de enviarlo a lambda. Digamos que tengo una entidad en Lambda como a continuación:

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

Y el json que se envió a la puerta de enlace de la API es {"firstName":"Foo","lastName":"Bar"} Como puede ver, falta el campo "language" en el cuerpo de la solicitud. Quiero obtener este campo de idioma de querystring y agregar a json. ¿Cómo puedo lograr esto?

¿Hay alguna manera de hacerlo en la sección de solicitud de integración ? Por ejemplo :

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

No pude encontrar ninguna información valiosa. Gracias por adelantado.