Spécifiez null
dans le modèle de réponse comme suit :
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}'
entraîne l'erreur :
Parameter validation failed:
Invalid type for parameter responseTemplates.application/json, value: None, type: <type 'NoneType'>, valid types: <type 'basestring'>
Si je remplace null
par "Empty"
la cli accepte le paramètre :
--response-templates '{"application/json":"Empty"}'
Lorsque la console AWS crée la même méthode et que je l'interroge, la valeur s'affiche sous la forme null
. Il semble que je devrais pouvoir le définir sur la même valeur via aws-cli.
aws-cli/v1.9.2
La solution consiste à passer une chaîne vide au lieu de null
, c'est-à-dire --response-templates '{"application/json":""}'
, et vous obtiendrez
{
"statusCode": "200",
"responseTemplates": {
"application/json": null
}
}
Merci.
Merci @quiver et @ehammond . Je crains que la "solution de contournement" ne soit en fait la bonne façon de le faire. Le fait est que le service apigateway est modélisé comme attendant une chaîne en entrée, donc tous les SDK AWS fonctionnent de cette façon, et apigateway traduit apparemment la chaîne vide comme nulle sous le capot. Vraisemblablement, la même histoire se produit également dans la console AWS.
Commentaire le plus utile
La solution consiste à passer une chaîne vide au lieu de
null
, c'est-à-dire--response-templates '{"application/json":""}'
, et vous obtiendrez