admin管理员组

文章数量:1401176

I'm trying to return a header from a lambda, it's returned as "<;limit=0>; rel=\"next\"" instead of <;limit=0>; rel="next".

And also when I don't return the header, I still see it as "". This is my cdk:

_api_gw.MethodResponse(
    status_code="200", response_parameters={"method.response.header.Link": True}
)

integration_response = _api_gw.IntegrationResponse(
    status_code="200",
    response_parameters=response_integration_parameters,
    response_templates={
        "application/json": """
#set($inputRoot = $input.path('$'))

## Map headers only if exist ##
#set($link = $input.json('$.Link'))
#if($link != "")
  #set($context.responseOverride.header.Link = $link)
#end

## Clean JSON body (exclude headers) ##
{
  "data": $input.json('$.data'),

}
"""
    },
)

default_request_template = {
    "application/json": '{ "method": "$context.httpMethod", "body" : "$util.escapeJavaScript("$input.json(\'$\')")", "headers": { #foreach($param in $input.params().header.keySet()) "$param": "$util.escapeJavaScript($input.params().header.get($param))" #if($foreach.hasNext),#end #end }, "queryParams": { #foreach($param in $input.params().querystring.keySet()) "$param": "$util.escapeJavaScript($input.params().querystring.get($param))" #if($foreach.hasNext),#end #end }, "pathParams": { #foreach($param in $input.params().path.keySet()) "$param": "$util.escapeJavaScript($input.params().path.get($param))" #if($foreach.hasNext),#end #end }}'
}

resource.add_method(
    "GET",
    _api_gw.LambdaIntegration(
        my_lambda,
        proxy=False,
        request_templates=default_request_template,
        integration_responses=[integration_response],
    ),
    method_responses=[
        _api_gw.MethodResponse(
            status_code="200", response_parameters={"method.response.header.Link": True}
        )
    ],
)

本文标签: pythonreturn header without quotes in aws lambdaremove header if emptyStack Overflow