2016-03-16 1 views
0

Я использую API Gateway для создания метода патча. В то Integration Request - Mapping Template я добавил:Использование AWS API Gateway для создания метода патча

{ "id": "$input.params('subscription-id')", 
    "env": "$stageVariables['env']", 
    "street": $input.json('street'), 
    "address_name": $input.json('address_name'), 
    "payment_day": $input.json('payment_day'), 
} 

В качестве способа патч HTTP, API пользователя не требуется передавать все параметры.

Так что если пользователь не прошел, например. payment_day, поле будет ''. Значение '' может быть допустимым полем значений. Поэтому у меня есть два варианта:

  • Положите значение NULL в поле payment_day.
  • Удалить payment_day из запроса JSON.

Возможно ли это сделать на API Gateway Integration Request -Mapping Template? У кого-нибудь есть обход?

+0

Вы можете просто передать все тело JSON своей лямбда-функции (используя '' $ input.json ('$') '' и отсортировать ее в функции Lambda. – garnaat

ответ

1

Вы можете использовать Velocity Conditionals для вывода дополнительных значений, если они есть.

В качестве альтернативы, как упоминалось в комментариях, вы можете просто передать весь корпус JSON с помощью $input.json('$') и справиться с присутствием или отсутствием внутри вашей функции лямбда.

Смежные вопросы