此处有人成功将Micronaut GraphQL API部署到AWS Lambda了吗?

时间:2019-10-24 09:45:40

标签: java aws-lambda graphql micronaut

我根据以下文章创建了GraphQL端点: http://lifeinide.com/post/2019-04-15-micronaut-graphql-with-transaction-and-security-support/

它在我的本地计算机上正常工作,但是在通过引用https://github.com/micronaut-projects/micronaut-aws/tree/master/examples/api-gateway-example部署到AWS lambda之后无法正常工作。

我用邮递员测试了Lambda的/ ping API,它运行良好。 但是,当我将graphql查询发布到/ graphql端点时,它总是返回“ 415不支持的媒体类型”。

我认为有些东西丢失了,但是我不确定是什么东西,如果有人可以向我指出如何使它起作用的方法,请多谢。

谢谢。

1 个答案:

答案 0 :(得分:1)

深入研究源代码之后,我发现graphQL post端点的Consumes属性设置为ALL,即 / 可以接受任何内容类型,但是在代码中它们专门引用application / json或应用程序/ graphQL。

当您使用application / json命中graphQL post端点时,MICRONAUT lambda处理程序会将内容类型与ALL匹配,这是不正确的,因此会引发错误415 Unsupported Media Type。请求永远不会到达graphQL控制器。

当您使用 / 命中graphQL发布端点时,MICRONAUT lambda处理程序将内容类型与ALL匹配,这似乎是正确的,因此它将请求转发给GraphQL控制器,但在代码中看起来特别对于那些特定的内容类型。同样,它依靠.equals方法进行比较。同样,它不匹配,因此抛出422无法处理的实体。

我仍在寻找解决方案。