因此,我已经研究了两天,对 Java 的了解还不够,无法完全实现解决此问题的方法。在客户端,我找到了一些优秀的用户文档,并相信我有正确的部分,但是在处理服务器中的入站 multipart/formdata 时,我有点迷茫。
我的应用程序的基础是基于HowToGraphQL Java教程,因为我觉得他们在组织代码库方面做得很好,并且使事情变得非常简单易懂。不幸的是,文件上传不是他们涵盖的领域,并且根据 graphql-java 包的维护者,不存在直接支持此功能的计划。
然而,这并不是说这是不可能的。GraphQL 规范旨在成为指导方针,社区如何选择调用规范取决于他们。许多人成功地结合了文件上传,尽管通常是通过包含自定义中间件
不幸的是,对我来说,障碍可能只是缺乏领域知识。我主要使用 JavaScript 和 Python 工作,并且主要有 Java 的学术经验。不完全确定从哪里开始,但我想我需要追踪我认为绑定到 SimpleGraphQLServlet 类的响应对象,并找到一种方法来提取入站文件对象。
希望获得更多专家建议或帮助提出解决方案。我还没有在 SO 上找到任何可靠的基于 Java 的片段来解决这个问题,因此解决这个问题可能会使其他尝试采用这个平台的人受益。
编辑:
可能找到了一种方法来做到这一点,但仍然没有制定出具体细节。在扩展 SimpleGraphQLServlet 类的 GraphQLEndpoint 类中,我们公开了 doPost() 方法。然而,提取数据最终会导致一系列错误,第一个错误是通过 @MultipartConfig 注释解决的,但是下一个错误让我再次停滞不前。“缺少 MultiPart 请求的内容。”
这个 doPost() 方法似乎是在发生突变后调用的,所以即使我设法提取了文件数据,似乎数据也会放在错误的位置。此外,我想知道丢失的内容是否是 Mutation 消耗帖子数据的结果,假设它甚至到达了。
然而,所有其他参数都完好无损,因此只需访问此文件即可。