问题标签 [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.
graphql - 为什么我的 Absinthe GraphQL 订阅不起作用?
我的架构:
当我做
我收到这个错误TypeError: Failed to fetch
日志:
这是我的其余设置:
用户套接字:
use Absinthe.Phoenix.Socket, schema: DrawingApiWeb.Schema.Schema
端点:
use Absinthe.Phoenix.Endpoint
路由器:
所有这一切都发生在我对任何上下文进行任何更改之前。无论问题是什么,它都应该在设置中。我已按照 Absinthe-GraphQL 书和 Pragmatic Studio 视频中的确切说明进行操作,并使用https://hexdocs.pm/absinthe/subscriptions.html进行了验证
还是同样的错误。提前谢谢你的帮助。
sockets - 使用 cookie 授权带有 elixir 和苦艾酒的 graphql 订阅
我正在尝试使用 cookie 使用 elixir 和苦艾酒进行授权/身份验证 graphql 订阅,我使用了以下链接:
https://nts.strzibny.name/graphql-subscriptions-with-elixir-and-absinth/
我正在尝试对用户进行身份验证以订阅正确的主题,但我无权访问订阅连接中的 cookie。为什么?
在我看到以下链接后:
https://hexdocs.pm/absinthe_phoenix/Absinthe.Phoenix.Socket.html
在我的 user_socket.ex 中,我将 user_id 作为查询参数传递,这是可行的,但它根本不安全......我可以传递我想要的 id ??!!
有人能帮我吗?
websocket - 如何使用 Absinthe (Elixir) 和 Urql 进行 graphql 订阅?
我的想法是使用 react 和 urql 构建一个客户端应用程序,以及使用 elixir 和苦艾酒构建一个 graphql api,但目前看起来它们并不能很好地结合在一起。
除了 Apollo 之外,有没有办法将 Absinthe 订阅实际用于任何其他客户端?我尝试使用 urql,但由于 ws 连接失败,出现以下错误:
WebSocket 连接到“ws://localhost:4000/socket/websocket”失败:WebSocket 握手期间出错:发送非空“Sec-WebSocket-Protocol”标头但未收到响应
到目前为止,我发现的唯一似乎与这个问题有关的是这个库 absinthe/socket-apollo-link (https://github.com/absinthe-graphql/absinthe-socket/tree/master/packages/socket -apollo-link)但它显然只适用于阿波罗。
在我失败的尝试中,我做了以下事情:
这个'subscriptions-transport-ws'我从一个教程中找到,并且在一些gh问题中提到了ws url末尾的神秘'/websocket',但它似乎有效(在将它添加到url末尾之前有根本没有ws连接)。
google-chrome - Graphiql (GraphQL UI) 无法在 Chrome 中加载,但在 Firefox 和 Safari 中有效
我不确定 Chrome 发生了什么变化,但 Graphiql GUI 工具没有加载。
在 Firefox 和 Safari 中它工作得很好。我已禁用所有 Chrome 扩展程序,重新启动 Chrome,并重新启动我的 Mac。错误仍然存在。我该如何调试?
在 graphql-workspace.min.js 中出错:
错误:
不知道为什么headers
未定义。
我正在使用:Elixir、Phoenix、Absinthe、Absinth-Plug、Vue、Vue-Apollo、apollo-boost、graphql、
由于 GUI 似乎是从 CDN 加载的,我想知道这是否是我应该探索的方向。但是,chrome 中的网络选项卡没有显示任何故障。
graphql - 苦艾酒数据加载器:Absinthe.Resolution.Helpers.dataloader/2 中的匿名 fn/3 中没有函数子句匹配
Absinthe 和 Dataloader 之间的集成对我来说是全新的,所以欢迎任何帮助。
我遇到以下错误:
我的PostType
:
模式突变:
解析器:
forms - 如何使用 Phoenix 表单在控制器的苦艾酒 @graphql 突变属性中填充自定义类型?
我已经读完了在 Elixir 中使用 Absinthe (Pragprog) 制作的 Craft GraphQL APIs,我正在尝试扩展 item_controller.ex 以允许“菜单项”编辑。
我在控制器中做了这些功能:
这是我的edit.html.eex:
这是我的 form.html.eex:
但是当我提交表单时出现错误。这是错误:
对于我,这说得通。例如,我可以将 form.html.eex 中任何输入元素的 name 属性更改为“input”,然后我会得到一个不同的错误:
再说一次,这对我来说很有意义。$input 参数不是 MenuItemInput 变量。
所以我希望通过两种可能的方式来解决这个问题:
在 form.html.eex 中,我创建了一个“表单中的表单”,以便它有一个“输入”字段,而该字段又包含多个字段。也许是“输入组”?
在 item_controller 中,我将变量传递给 @graphql 模块属性。我根本不知道该怎么做。我尝试了很多奇怪的语法,因为我什至找不到内联变量的 SDL 示例。
非常欢迎任何建议/批评/想法。我确信其他人已经这样做了,因为在完成这本书之后尝试似乎是一件很自然的事情。
elixir - 使用数据加载器批量加载苦艾酒中的字段
我的 Absinthe graphql 模式中有一个对象,如下所示:
我正在使用一个解析器,vote_count
它使用 parent 执行 ecto 查询match
。但是,如果查询匹配列表,这将遇到 n+1 查询问题。它目前看起来像这样:
我已经在使用dataloader来批量加载子实体,但是在使用Absinthe 提供的函数时,我似乎无法让自定义run_batch
函数工作。Absinthe.Resolution.Helpers.dataloader
使用 dataloader/ecto 实现自定义批量查询的推荐方法是什么?有人可以举个例子,包括架构定义部分吗?
graphql - 有效地解决elixir数据加载器中的belongs_to关系?
是否可以使用 elixir 数据加载器belongs_to
有效地查询关系?似乎load
正在查询它需要的所有项目,但是get
无论它实际需要哪个项目,它都会返回已加载项目的第一个值。这是我现在使用的代码:
我目前的工作是使用以下代码,但它使代码更加丑陋且与 Ecto 模式不友好,因为我需要在此处显式指定父模式的节点模式和 node_id 字段,而不是让数据加载器从现有的外模式:
elixir - Absinthe 无法序列化嵌套地图,但它能够序列化顶级地图
我正在尝试解决以下问题(这是我的解析器函数的返回值,我将它传递给resolve
宏):
这将返回这个经典错误:
我得到了,它不知道如何将地图转换为字符串,但这导致了我的实际问题:
我想知道为什么可以很好地解析顶级errors
地图,但不能很好地解析嵌套messages
地图,希望得到一些指导,谢谢!
注意:我们的模式是让 Ecto 样式验证错误在我们自己的数据下返回,而不是顶级 Graph 查询错误,因此使用 :ok 元组而不是解析 :error 元组
graphql - Absinthe - 如何将_session 放入解析器函数中?
我正在使用苦艾酒并且有一个突变的迹象。当用户通过有效凭据发送时,我想通过在响应中设置会话 cookie put_session
。
我面临的问题是我无法conn
从解析器函数中访问。这告诉我,我不应该从解析器中更新连接的属性。
用苦艾酒可以做到这一点吗?有哪些替代解决方案?