Указание null
в шаблоне ответа следующим образом:
aws apigateway put-integration-response \
--region "$region" \
--rest-api-id "$api_id" \
--resource-id "$resource_id" \
--http-method GET \
--status-code 200 \
--response-templates '{"application/json":null}'
приводит к ошибке:
Parameter validation failed:
Invalid type for parameter responseTemplates.application/json, value: None, type: <type 'NoneType'>, valid types: <type 'basestring'>
Если я заменю null
на "Empty"
, cli примет параметр:
--response-templates '{"application/json":"Empty"}'
Когда консоль AWS создает тот же метод и я запрашиваю его, значение отображается как null
. Кажется, я должен иметь возможность установить для него то же значение через aws-cli.
aws-cli/v1.9.2
Обходной путь заключается в передаче пустой строки вместо null
, т.е. --response-templates '{"application/json":""}'
, и вы получите
{
"statusCode": "200",
"responseTemplates": {
"application/json": null
}
}
Спасибо.
Спасибо @quiver и @ehammond . Я боюсь, что «обходной путь» на самом деле правильный способ сделать это. Дело в том, что сервис apigateway моделируется как ожидающий строку в качестве входных данных, поэтому все AWS SDK работают таким образом, и apigateway, по-видимому, под капотом переводит пустую строку как null. Предположительно, та же история происходит и в AWS Console.
Самый полезный комментарий
Обходной путь заключается в передаче пустой строки вместо
null
, т.е.--response-templates '{"application/json":""}'
, и вы получите