【发布时间】:2021-09-08 23:26:51
【问题描述】:
Elixir/Phoenix 和 GraphQL 的新手。我创建了一个简单的 API,可以从 PostgreSQL 数据库中检索“绘图”。该表由“id”(uuid)和“drawing_json”(文本)组成。表中有一行,json 字符串约为 77Kb。我的架构和查询是使用苦艾酒定义的。我有 1 个名为“all_drawings”的查询,它解决并联系到 Repo 并提取所有图纸。使用 postman 调用此 API 时,以下查询正常:
{
allDrawings
{
id
}
}
但是,当我尝试返回 json 字段以及邮递员请求超时时,我收到“套接字挂断”错误。
查看 Visual Studio Code 中的调试控制台,我可以看到查询从数据库中获取数据非常好,几乎是立即的。尽管将其返回给我无法检测到的客户,但似乎正在发生一些事情。不会抛出任何错误。有任何想法吗?不确定哪些信息会有所帮助,但很乐意提供更多信息。
【问题讨论】:
-
您的数据库中有多少行?您是对查询实施限制,还是返回所有可用行?
-
@Everett 仅出于测试目的,我在表中只有一行从中提取。它会拉出所有可用的行,但只有一个。就像我说的那样,我可以在调试控制台中看到,当我点击发送时,它几乎立即打印结果,并带有来自 db 的预期结果。尽管尝试向下游发送该响应时发生了一些事情,但我似乎无法获得描述性错误消息。我知道在 .NET api 中你已经设置了 maxrequestlength 来处理更大的响应。也许这也是同样的路线?如果是这样,我该如何在 Elixir/Phoenix/GraphQL 中处理这个问题?
-
我不得不四处寻找设置,但凤凰城一定有类似的东西。还可以流式传输输出,这可能会更好。您能否分享正在使用的确切 JSON 正文,以便我们尝试重现该问题?
-
stackoverflow.com/q/56416447/6124657 - 作为字符串返回以避免类型检查
-
我试图在本地重现:我制作了一个简单的 Phoenix 应用程序,在数据库中有一些非常大的行,API 响应仍然正常(响应大小超过 26mb)。也许您可以共享您的数据库架构和迁移?如果您将日志级别设置为调试,请查看是否弹出任何内容。
标签: graphql postman elixir phoenix absinthe