Mapping multiple values for a requestParameter key

0

Hello there,

Is it possible to pass multiple values to a single request parameter key in integration requests? JSON like or encoded string?

A typical use case could be passing the sub property from the authorizer in the SNS message payload, together with other parameters

So far I have tried this:

integration.request.querystring.Message.foo: method.request.path.foo
integration.request.querystring.Message.bar: method.request.path.bar
integration.request.querystring.Message.userId: context.authorizer.claims.sub

But when I make the request via Postman I have this error:

    "Error": {
        "Code": "MalformedInput",
        "Message": "Start of list found where not expected",
        "Type": "Sender"
    },

Is this even possible? The docs do not mention it

teo
demandé il y a 4 ans1662 vues
4 réponses
0
Réponse acceptée

It's not possible via the parameter mapping but doable within the request body mapping template with request override feature.
https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-override-request-response-parameters.html

Please note that the request/response override is only available in REST API.

AWS
répondu il y a 4 ans
0

up please =)

teo
répondu il y a 4 ans
0

Hello, first of all, thank you very much for the response.

And yes it worked by using mapping template, I thought they were only for body.

This is the working solution, under

requestTemplates:
                 application/json:
#set($foo = $input.params('foo'))
#set($userId = $context.authorizer.claims.sub)
$input.json("$")
#set($context.requestOverride.querystring.Message = "{
    ""foo"":  ""$foo"",    
    ""userId"" : ""$userId""
}")"
teo
répondu il y a 4 ans
0

For a mix of numeric and associative arrays one can use this syntax as well:

#set($context.requestOverride.querystring['filter[0][action]'] = "where")
#set($context.requestOverride.querystring['filter[0][attribute]'] = "status")
répondu il y a 9 mois

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions