Especificando null
en la plantilla de respuesta de la siguiente manera:
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}'
da como resultado el error:
Parameter validation failed:
Invalid type for parameter responseTemplates.application/json, value: None, type: <type 'NoneType'>, valid types: <type 'basestring'>
Si reemplazo null
con "Empty"
el cli acepta el parámetro:
--response-templates '{"application/json":"Empty"}'
Cuando la Consola de AWS crea el mismo método y lo consulto, el valor se muestra como null
. Parece que debería poder establecerlo en el mismo valor a través de aws-cli.
aws-cli/v1.9.2
La solución es pasar una cadena vacía en lugar de null
, es decir, --response-templates '{"application/json":""}'
, y obtendrá
{
"statusCode": "200",
"responseTemplates": {
"application/json": null
}
}
Gracias.
Gracias @quiver y @ehammond . Me temo que la "solución alternativa" es en realidad la forma correcta de hacerlo. El hecho es que el servicio apigateway se modela como si esperara una cadena como entrada, por lo que todos los SDK de AWS funcionan de esta manera, y apigateway aparentemente traduce la cadena vacía como nula bajo el capó. Presumiblemente, la misma historia también sucede en la consola de AWS.
Comentario más útil
La solución es pasar una cadena vacía en lugar de
null
, es decir,--response-templates '{"application/json":""}'
, y obtendrá