问题标签 [absinthe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
179 浏览

api - 在 phoenix 框架(苦艾酒)中使用 grahql 在 API 响应中发送可下载文件

我目前正在使用苦艾酒发送 json 字符串以响应 graphql 中的 API 请求。它的架构如下所示:

我现在想在 API 响应中发送可下载的 json 文件而不是 json 字符串。我最初的想法是在苦艾模式中使用一种类型,并使用或文件支持的任何数据类型:file从解析器返回一个文件。但我在他们的文档File.write/2中找不到苦艾酒支持的文件数据类型。如何在 graphql API 响应中发送 json 文件?

0 投票
1 回答
141 浏览

graphql - GraphQL Elixir/Phoenix API:Socket 挂起,响应很大

Elixir/Phoenix 和 GraphQL 的新手。我创建了一个从 PostgreSQL 数据库中检索“绘图”的简单 API。该表由“id”(uuid)和“drawing_json”(文本)组成。表中有一行,json 字符串约为 77Kb。我的架构和查询是使用苦艾酒定义的。我有 1 个名为“all_drawings”的查询,它解析并联系到 Repo 并提取所有图纸。使用 postman 调用此 API 时,以下查询可以正常工作:

但是,当我尝试返回 json 字段以及邮递员请求超时时,我收到“套接字挂断”错误。

在此处输入图像描述

查看 Visual Studio Code 中的调试控制台,我可以看到查询从数据库中获取数据很好,几乎是立即的。尽管将其返回给我无法检测到的客户,但似乎正在发生一些事情。没有错误被抛出。有任何想法吗?不确定哪些信息会有所帮助,但很乐意提供更多信息。

0 投票
1 回答
77 浏览

graphql - 有没有办法强制从服务器端断开苦艾图订阅?

我正在开发的 Phoenix 应用程序创建对文档更改的订阅,只要该文档是“公共的”。但是,如果有人将他们的文档更改为“私人”,我不希望这些订阅继续接收更新。

我知道如何防止在私人文档上创建新订阅,但我不确定如何从服务器端禁用预先存在的订阅?

0 投票
1 回答
78 浏览

elixir - 将长生不老药苦艾酒映射到单个数据结构

有没有办法将 input_object 映射到单个数据结构中?

然后将其解析为 [start, end] ?

0 投票
1 回答
50 浏览

elixir - 使用 FunWithFlags 在 Absinthe 中间件中获取 ArgumentError ets.lookup

我正在尝试在苦艾酒中间件/3FunWithFlags.enabled?回调中使用(ref fwf ),但出现以下错误:

我没有尝试太多。我只是缩小了问题发生的范围。我猜中间件在创建:some_flag record(或者可能是:fun_with_flags_cache表)之前编译,然后因为没有记录/表而失败。

这个链接说:

它将标志信息存储在 Redis 或关系数据库(PostgreSQL 或 MySQL,带有 Ecto)中,用于跨不同节点的持久性和同步,但它还在 ETS 表中维护本地缓存以进行快速查找。当在一个节点上添加或切换标志时,其他节点会通过 PubSub 通知并重新加载其本地 ETS 缓存。

我已经尝试使用以下配置禁用 ETS:

但我没有工作。:(

这是我如何使用它的示例:

谢谢!

0 投票
1 回答
22 浏览

node.js - 在 overmind graphql 中导入 Phoenix npm 包失败

npm install我使用run重新安装了所有节点模块,但出现错误:
Cannot find module 'phoenix' from 'node_modules/@absinthe/socket/compat/cjs/index.js'

它首先在@absinthe 代码中失败:
require('phoenix');在@absinthe/socket/compat/cjs/index.js

但是 overmind-graphql 也依赖于 phoenix 并且 IDE 显示了一个损坏的导入:在 overmind-graphql
import { Socket as PhoenixSocket } from 'phoenix';的这一行中

我为此安装的相关软件包版本:

我试过了:

  • "phoenix" 和 "@absinthe/socket" 之前是依赖项,所以我手动安装了它们
  • 删除所有 node_modules 并重新安装所有软件包
  • 删除 package-lock.json、node_modules 并重新安装所有包
  • 在我的 React 组件中删除 overmind 的导入:没有错误,因为它没有到达失败的 phoenix 导入
  • 运行next buildnext start不是总是重新加载next dev
0 投票
1 回答
181 浏览

graphql - Elixir Phoenix Absinthe Web 和移动应用程序中的 GraphQL API 身份验证

我正在为我的应用程序开发 Absinthe GraphQL API。我还在学习这个程序(所以请放轻松)。

我有一个 Absinthe/GraphQLMyAppWeb.schema.ex文件,用于查询和突变。我的问题是如何使用此 API 在移动和 Web 应用程序上对用户进行身份验证?

如何在我的网络应用程序中设置 cookie(httpOnly 和安全)并在单个苦艾酒 API 中访问/刷新令牌以服务于我的网站和移动应用程序。基本上我要学习的是如何基于特定平台对用户进行身份验证。

如果我的问题听起来有点令人困惑,我很乐意提供与我的问题相关的更多信息。如果有人可以解释该程序,我将不胜感激,我已经为此困扰了一段时间。

0 投票
1 回答
62 浏览

elixir - 苦艾酒中间件未在查询中应用/运行

我有 Absinthe 中间件,可以检查经过身份验证的用户的上下文,如下所示:

然后将其应用于我的架构中:

但是,当我进行查询时,永远不会调用中间件。是否可以匹配任何标识符,或仅匹配querymutation

此外,这是仅将中间件应用于某些查询/突变组的最佳方式吗?

0 投票
0 回答
41 浏览

graphql - 如何在基于光标的中继分页中跳转到特定日期?

我有一个按 startDatetime 时间戳排序的游标基础分页中继连接。查询如下所示;

以及苦艾酒中的相关模式:

还有 Shifts 解析器;

为简洁起见,可以假设 Shifts.unassigned_shifts 在哪里;

在呈现初始查询后,用户可以选择他们想跳转到分页列表中剩余的任意日期。这个东西很大,所以他们可能想跳到一个日期,然后从那里来回滚动。

在随后的查询中,我可以在 fetchMore 查询中传递该日期,但如何在解析器的 Absinthe.Relay.Connection.from_query 调用中应用该日期。简单地说,我认为我需要获取日期,将其转换为游标并将该游标传递给 from_query 采用的参数,但我不确定我是否走在正确的轨道上或如何去做。

我对 Elixir 相当陌生,所以无法通过阅读 Absinthe 的源代码来解决这个问题,所以任何指针都会很有帮助。

谢谢!

0 投票
1 回答
31 浏览

graphql - 苦艾酒 - 如何从自定义类型解析嵌套字段

我想在我的模式中有一个自定义 GeoPoint 类型,但我在模式类型文件中找不到任何示例。我发现的唯一方法是在模式文件中使用 input_object。是否可以使用 Absinthe.Blueprint.Input.Object 这样做?

这是我的自定义类型:

现在我可以用这个突变创建一个新条目

和这些变量

我更喜欢使用类似的东西来创建

或者