我不确定这是Micronaut问题还是AWS Gateway问题。任何帮助都是很棒的。
我正在尝试使用Micronaut框架来创建一个Lambda函数,该函数通过AWS API网关返回一个pdf。这是否受支持?要返回二进制内容,需要更改哪些内容?我曾尝试将该方法的返回类型更改为byte[],但看起来Content-Type始终为application/json。
作为背景,我希望使用Groovy编写函数,并使用DynamoDB中的数据创建动态报告。
在此之前,非常感谢您。
发布于 2018-05-28 09:48:51
我现在已经设法让它工作起来了。
我已经创建了一个响应对象:
class ReportResponse {
boolean isBase64Encoded = true
def headers
byte[] body
}
然后在我的处理程序中,我有:
ReportResponse reports(data, Context context) {
return new ReportResponse(
headers: [ "Content-Type": "application/pdf" ],
body: JasperExportManager.exportReportToPdf(new
MemberReport().getReport(data.queryStringParameters.id)))
}
不幸的是,当我在ReportResponse类中硬编码头部时,出现了一个控制台错误(关于OpenJDK..)
上面的代码允许我在AWS API Gateway中使用Lambda代理,因此完整的请求对象将传递给函数。
唯一的其他更改是在AWS API Gateway中将'*/*‘设置为二进制,这对我的用例来说很好。
发布于 2018-05-25 15:13:23
您尝试过使用@Produces吗
https://stackoverflow.com/questions/50524576
复制相似问题