问题标签 [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 回答
1019 浏览

ecto - 如何设置字段名称与基础 Ecto 字段名称不同的 Absinthe 架构?

例如,我想在以下 Absinthe 模式中调用前端的inserted_on时间戳:created_at

但我不确定如何设置 Ecto <-> Absinthe 映射。我应该在我的 Ecto 架构中添加一个虚拟字段吗?

0 投票
3 回答
203 浏览

elixir - 如何使用 Elixir 和 GraphQL 从数据库中删除照片

我一直在关注 EQuimper 制作的 Instagram 克隆教程。我一直在尝试通过后端进一步扩展应用程序,因为目前前端并不重要。我正在尝试实现删除照片功能,但它似乎不起作用,我不知道为什么。

我的 schema.ex 在突变部分下包含此代码。

这是 resolver.posts 文件中的代码,用于返回列表或单张照片。

这是执行突变以从数据库中删除照片的代码,它接收照片结构并将其删除。

这是定义照片模式的代码。

@doc false def changeset(%Photo{} = photo, attrs) 做照片 |> cast(attrs, [:image_url, :caption]) |> validate_required([:image_url]) 结束

此代码位于处理架构的 photo.ex 文件中(我认为)

这是我运行以从数据库中删除查询的突变。它返回一个错误说

从终端返回。我做错了什么?以及我对本示例中的功能流程有什么不了解的地方。视频系列链接:https ://www.youtube.com/watch?v=AVQQF_J3Az0&list=PLzQWIQOqeUSOu74jGJMRH06gneM3wL82Z进一步说明。

0 投票
1 回答
467 浏览

elixir - 如何在 Elixir/Phoenix 控制器中运行 GraphQL 查询而不删除生成的 CRUD 网页?

我在 Elixir 中创建了一个 Phoenix 应用程序。我使用生成工具来创建所有的 crud 功能和 crud 页面。

它目前使用:

如何用 GraphQL 实现替换它,因为我目前能够通过指定的 url 传递 GraphQL 查询,例如。从表中获取所有记录。该文档讨论了使用 absinthe_phoenix 插件并将其添加到您的管道中。这最终只是替换了我拥有的当前网页并要求提供一个 url,所有当前页面都是 Phoenix 在运行脚手架命令以生成 crud 和数据库模式时创建的页面。

我需要保留所有这些杂乱无章的页面,但让它们运行 GrapQL 查询。所以在显示数据库中所有记录的页面上,我需要它而不是运行

它应该运行

获取所有数据。如何在控制器中运行 GraphQL 查询?

这是我需要在我的 GraphQL 模式中运行的查询

0 投票
0 回答
226 浏览

elixir - 如何告诉苦艾酒它应该发出查询以发送未完成订阅的更新?

我正在运行查询后端的 Absinthe GraphQL 服务器,但也有来自外部的事件(通过 AMQP),表明发生了更新(其中一些不包括更新的记录信息)。

我可以处理包含新记录的事件Absinthe.Subscription.publish

但是如何处理更新记录不存在的情况呢?

换句话说,我想触发 Absinthe 发出查询,并将结果作为现有订阅的结果发送到 GraphQL 客户端。

0 投票
1 回答
1080 浏览

elixir - Elixir, Absinthe 如何在与苦艾酒约会后创建用户?

我正在尝试获取在某个日期之前/之后创建的用户,但我收到了这个错误。

"message": "参数 \"filter\" 具有无效值 $filter。\n在字段 \"insertedAfter\" 中:预期类型 \"NaiveDateTime\",找到 \"2018-05-13\"。",

该错误是有道理的,因为“2018-05-13”不是 NativeDateTime ......但是,我认为 NativeDateTime 应该解析字符串“2018-05-13”。我正在尝试应用我从书中学到的东西,但很难。我还创建了一个自定义日期标量,但我基本上遇到了同样的错误。

我怎样才能用凤凰和苦艾酒搜索在某个日期之后创建的用户?

Ecto 架构,帐户 > user.ex

类型.ex

苦艾架构 schema.ex

users_resolver.ex

帐户.ex

mix.exs

0 投票
2 回答
616 浏览

elixir - 我应该如何管理插入相关表

我有一个链接到电子邮件表的帐户表,大致如下:

在此处输入图像描述

目前,我的帐户变更集cast_assoc用于提取电子邮件:

但这意味着我需要提供如下数据:

我正在使用 GraphQL,并且为了支持以下形式的“注册”突变:

我需要:

  1. 重新格式化我的输入,以便将其传递到我的 ecto 变更集中(将其嵌套在电子邮件中)
  2. 展平我的变更集错误以返回验证消息

有没有办法重构这个,或者修改我的变更集以取消嵌套该字段?我是长生不老药和ecto的新手。

0 投票
1 回答
779 浏览

elixir - Elixir:使用 Absinthe 查询图形数据库 Dgraph。GraphQL 到 GraphQL+ 的映射

我正在使用苦艾酒来构建 GraphQL API。数据存储是Dgraph,它使用 GraphQL+ 作为查询语言。它与 GraphQL 类似,但并不完全相同。

从理论上讲,这会让我处于一个美妙的境地。类似的 GraphQL 查询

也可能只是 Dgraph 中的一个查询。它看起来几乎相同:

图形数据库一次性加载复杂关系的能力是我想使用的。问题只是:在苦艾酒中,模式应该是可组合的。在模式中将有一个:user对象,该对象的:posts字段为list_of(:post)。然后是一个:post对象。等等。

为了帮助防止 N+1 查询,您将使用数据加载器或批量加载。

现在我可以一口气加载所有内容。例如,我可以编写一个解析器来做到这一点:

以及实际查询数据库的用户上下文

这里的问题是我过度获取。我总是查询所有内容,即使我只想要一个用户列表。这可行,但在性能方面不是很好。我失去了可组合性。

如果我可以访问解析器中的查询以了解请求了哪些字段,那么解决方案是什么。然后我可以使用模式匹配来构建查询,然后将其发送到 Dgraph。我什至可以拥有一个中央解析器和许多查询构建器。但我需要挂钩查询并直接解析它。

这样的事情可能吗?知道在哪里可以找到有趣的东西来解决这个问题吗?也许用苦艾酒中间件?

谢谢!

0 投票
1 回答
584 浏览

elixir - 长生不老药苦艾酒自定义标量:日期时间导入错误

我创建了这么多架构,但是当我尝试:datetime从苦艾酒中导入自定义标量类型时。然后它给了我这样的错误

我也进口了import_types(Absinthe.Type.Custom)

0 投票
2 回答
572 浏览

graphql - Authorization for subscriptions Graphql (Absinthe) with token

I'm trying to add authentication to this subscription test, since I keep getting Not Authorized when I run mix test. I've seen that you need to add a login mutation to the push_doc function but I was wondering. Is there any way to use only the token to authenticate, just like regular mutations that use :

This is my current subscription test:

My general question is. Can I only pass the token (which I have hardcoded) into a function to authenticate for subscriptions?

0 投票
0 回答
1150 浏览

amazon-web-services - 使用预签名 URL 将图像推送到存储桶时,AWS S3 签名不匹配错误

在具有 Elixir/Phoenix 后端的 React Native 应用程序中,我试图让用户创建一张照片,该照片将使用 AWS 预签名 URL 推送到 S3 存储桶。我正在使用 Hex 包 ex_aws 来公开 API。虽然我对 Elixir 比较陌生,但我遵循了文档,并且代码生成了上传 url,没有任何问题。

配置:

生成上传URL的函数:

并作为对象添加到类型中:

我正在使用用 Absinthe 实现的 GraphQL,我已添加到解析器中,如下所示:

这是生成的上传 URL:

这些也是构成 ex_awspackage 的服务:

我创建了一个附加了 AmazonS3FullAccess 策略的 IAM 用户。我还尝试使用具有完全管理权限且 S3 存储桶完全公开的 IAM 用户发送图像。我尝试过使用和不使用 UUID,并尝试在查询参数中删除内容类型。密钥和访问密钥导出到 .env 文件中,我检查了它们是否与 AWS 匹配,并检查了是否存在任何空白错误。我确保了 .env 文件的来源。我还尝试将密钥直接添加到 Postman 中的授权类型中。最后,我两次删除并重新创建了 IAM 用户和 S3 存储桶,但均无济于事。使用指定的 Put 方法,这是返回:

我相信AWS方面一定存在权限问题,我根本没有看到,但是我已经浏览了文档,但我找不到任何东西,第二天继续使用这个,非常感谢任何帮助。