问题标签 [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.
elixir - Graphql Absinthe Elixir 基于权限的可访问字段
定义所有用户可能无法访问的字段的正确方法是什么。
例如,普通用户可以查询用户并找出其他用户处理的信息,但只有管理员用户才能找到他们的电子邮件地址。用户类型将其定义为字段,但可能无法访问。一般用户可以看到的内容是否应该有单独的类型?你会如何定义它?
抱歉,如果不是那么清楚,我只是不具备词汇量。
elixir - 如何在苦艾酒中使用时间戳?(凤凰1.3)
我对 phoenix 1.3 + 苦艾酒有疑问。
我试试这段代码:
它适用于id
但path
它失败inserted_at
了:
many-to-many - 凤凰城同一张桌子上的多对多
使用 Ecto v2.2.6、Phoenix 1.3
我有一张人表(他们碰巧彼此相关),以及这些人的另一张关系表。关系表在一列中列出了父级的 id,在另一列中列出了子级的 id。
现在,我将在关系模式中添加belongs_to 关系(目前看起来像这样)
但是如果没有明确设置 id 的能力,它看起来像这样(这似乎不起作用)
如何编写关系模式以便捕获这些belongs_to
关系?
编辑
根据建议,我已经像这样设置了架构:
我也尝试对 Person 模式做类似的事情:
但是,当我尝试访问这些关系时(我正在通过苦艾酒/graphql 模式执行此操作),我看到它正在某处寻找 person_id:
elixir - 如何在 Elixir 中使用苦艾酒在我的查询中对嵌套项使用参数?
我试图找出如何使用 Absinthe 在查询中的嵌套项上使用参数。
我试图完成的是:
这是我的架构和类型:
和解析器:
所以我的问题是我应该如何以及在哪里为客户放置排序参数?在上面的例子中,我得到一个错误:
elixir - 在解析器中获取每种查询类型的字段
问:我想了解用户在Absinthe
graphql 框架内的 GraphQL 查询中选择的字段。
我很难四处寻找,%Absinthe.Resolution{}
因为它是一个巨大的状态,与许多文件上的零散文档一起使用。
给出以下示例。用户查询可以返回联合类型的帖子。用户在响应中遇到的每种类型上都选择id
、role
和。parentId
slug
Post
现在我有一个解析器:
现在我的问题是,如果info
不完全了解Absinte.Resolution
.
Ps 是 Elixir Graphql 实现“苦艾酒”的新手。我显然会继续研究解决方案,如果我在这里找到一个帖子,但也许其他人遇到了类似的事情并且已经有了解决方案。
Pps:我不应该那么难,因为这一定是一个非常常见的用例,因为 GraphQL 使服务器能够小心他从数据库中获取的数据。
elixir - 将聚合字段添加到 elixir graphql
我正在使用苦艾酒和长生不老药(凤凰 1.3)。我有一个博客应用程序,其中包含用户、帖子和喜欢,并且喜欢通过用户和帖子之间的多对多关系加入。
假设我想在后端而不是前端聚合它们。我想:liked_by
简单地计算所有存在的喜欢,更像是field :likes, :int
,这样我就可以得到这样的回复:
我的对象应该是什么样子?我想做这样的事情:
编辑#1:更具体地说,我想知道如何参数化苦艾对象中的匿名函数。我可以让对象轻松返回非参数化值:
但是像这样添加一个参数
返回以下内容:
如何传入对象的 id 或隐式关联的查询?
编辑#2:我已经找到了解决方案,但感觉很hacky。
elixir - 更高级:搭配长生不老药苦艾酒
我的博客应用程序有一个Post
模型,它有很多Comment
s。
我也有一个相关的苦艾酒对象。
查询按预期工作。
现在我想active
在模式中添加一个布尔字段,Comments
以便我可以执行软删除;我只会在其中选择评论,我将通过设置为active == true
删除评论。active
false
我将该字段添加到我的架构中:
现在我只希望苦艾酒:comments
字段返回活跃的评论。我有一个自定义解析器...
不过,我担心这会遇到 N+1 问题。有没有更优雅的方法来做到这一点?
graphql - 如何“模拟”一些 GraphQL 请求,同时将其余请求转发到现有的 GraphQL 服务器?
问题:有没有办法模拟一些 GraphQL 类型/查询/突变/订阅,同时将其余部分“转发”到现有的 GraphQL 服务器?
情况:应用程序有一个模式,其中一部分已经在服务器上实现,其余的还有待开发。在前端工作有时会产生对我试图解决的后端团队的依赖。
目标设置:有问题的设置应该将所有请求“转发”到现有的 GraphQL 服务器,除了我想要模拟的请求。因此,对于已经在服务器上实现的部分(例如用户身份验证),使用实际的服务器,而对于尚未在服务器上实现的部分,我可以使用模拟响应。
我尝试过搜索,虽然我找到了创建模拟 GraphQL 服务器的方法,但我找不到这样的方法。
我愿意编写一些代码来实现这一点,但作为 GraphQL 的新手,我认为首先询问这个问题会给我一些关于如何解决这个问题的有用指示。
Fwiw,前端使用 Apollo GraphQL(使用 React),后端使用 Absinthe(使用 Elixir/Phoenix)
elixir - Ecto 查询不适用于苦艾酒分辨率
我正在尝试使用Absinthe#Batch进行简单查询,但是执行 Ecto 查询的函数不返回任何结果。
我添加了一些跟踪来计算数据库上的记录。预计总是返回 1,但不是。
解析器:
辅助方法:
一些追踪:
elixir - 在 Elixir Phoenix Absinthe GraphIQL 客户端中实现身份验证?
我在 Absinthe 中使用内置的 GraphiQL 界面。如下:
我需要最终用户Authentication: Bearer <JWT>
在界面中插入一个,然后需要为 sub: 标头打开它,其中包含我的用户 ID,我需要在解析器中使用它。
用户可以配置自定义标题,这没问题。如果他随后执行 GraphSQL 查询,接口将向 /graphiql 端点发出 POST。正是在这一点上,我想调用一些插件来检查 JWT 并检索用户信息。
我以为我可以使用 default_headers 选项,但这似乎只在 GET 请求期间被调用。
看来我需要不同的管道用于 GET 和 POST 到 /graphiql 端点,我该如何实现?我一定做错了什么...
请注意,如果我对 GET 和 POST 使用相同的管道,则仅在访问浏览器中的端点时就已经检查了 JWT,这是我不想要的。