Return HTML to browser from API Gateway using Lambda Proxy Integration

0

I have a Lambda function built and deployed which accepts a collection of data in the request, processes and returns an HTML string for presentation to the user's browser. I have the Lambda function working. the function is to be integrated with API gateway. The return to the user is represented as a JSON object.

the python code is

    return {
    "statusCode": 200,
    "body": userResponse
}

where userResponse would contain "<html>...<body>...</body></html>.

I have an API set up in API gateway, which is implemented using Lambda Proxy Integration. It appears all I can do is define a model, but no body mapping template.

When I submit my querystring to the API endpoint, I get a response displayed in my web browser which is the html text as in

<html>
<head>
<meta http-equiv="Content-Type" content="text/html"/>
<meta charset="utf-8" />
</head>
<body>
...
</body>
</html>

the html is not rendered by the browser.

If I save the file to my machine as an html file, it is correctly rendered in the browser.

So, how do I tell API gateway to return html to the web browser with Lambda proxy integration turned on? What does the Model look like? Where does the body mapping happen?

thanks

feita há 5 anos4331 visualizações
1 Resposta
1

If you add a content type header to your returned data it should render properly:

return {
"statusCode": 200,
"body": userResponse,
"headers": {"Content-Type": "text/html"}
}

respondido há 4 anos

Você não está conectado. Fazer login para postar uma resposta.

Uma boa resposta responde claramente à pergunta, dá feedback construtivo e incentiva o crescimento profissional de quem perguntou.

Diretrizes para responder a perguntas