问题标签 [graphql]
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 - 使用 graphql-js 的相关 Http 响应代码
好的,事情就是这样,我正在尝试弄清楚如何使用 graphql-js 处理错误。(在没有继电器的情况下)
不够具体!?好的,因为 graphql-js 正在捕获解析函数中抛出的所有错误,所以我对如何正确处理错误和 http 响应有点困惑。
所以我没有什么想法,想知道你的想法!
即使包含错误,也始终使用 graphql 响应返回 200 OK。(不喜欢那个)
在 result.errors[0] 上切换大小写并针对错误返回 http 响应,如果没有错误则返回 result.data。(这最终可能是一个非常长的开关盒)
处理 resolve 函数和 throw 和 object 中的错误处理(例如
{ httpCode: 404, msg: 'No X found with the requested id' }
)在 express app.post 函数(或任何 Web 框架)中,具有以下内容:
/li>
由于错误对象的编组方式,这目前不起作用......或者至少我还没有找到如何将它从 graphql 中取出。我正在考虑可能会研究 graphql-js 源,但我想我最好先问你们,因为我可能会遗漏一些明显的东西。
显然,欢迎有更好的主意!
干杯:D
reactjs - Relay.js 中的根查询创建和删除
我试图弄清楚如何在没有父节点的情况下使用 Relay 创建和删除节点。似乎NODE_DELETE
/RANGE_DELETE
和RANGE_ADD
都需要一个父节点。有没有办法从 Relay.js 中的根查询对象执行创建和删除突变?
注意:我确实找到了可以使用 FIELDS_CHANGE 查询执行创建的示例,但它们缺少任何文档或原因。
reactjs - 在 Relay 中,节点接口和全局 ID 规范起什么作用?
relay-starter-kit
我从Relay 和 GraphQL 文档开始,并且一直在研究。但有不少领域是无法解释和神秘的。
说真的,我到处阅读了很多关于所有这些事情的文档,但找不到对以下问题的任何令人满意的解释:
这个是来做什么的?我放了日志,但它甚至根本没有被调用:
而这样做的实际效果是什么:
也许与此有关,node
这里的字段是做什么的:
该领域的魔力是什么id
?是globalIdField
为了什么?
我的数据库中有一个id
,并认为我可以在我的 GraphQL 对象中使用它:
代替:
我想使用我的数据库 ID:
但如果我这样做,我会在浏览器中收到错误提示RelayQueryWriter: Could not find a type name for record '1'
。
我可以通过添加到我的组件容器 Relay Query 来消除该错误,__typename
但这似乎完全错误。
如果您能在这里提供更深入的内容和更好的解释并增强官方文档,那就太好了。
谢谢
reactjs - 从 Relay 容器中将参数传递给顶级字段
假设我country
在 GraphQL 架构的顶层定义了一个名为的字段。我可以通过以下方式查询它:
在我的中继容器中,我可以指定我希望返回的属性和片段Country
:
如何alpha2
从我的反应组件中更改参数的值?我可以将该字段嵌套country
在某个任意字段下,并在父级上声明我的中继片段,但如果可能的话,我宁愿避免不必要地修改我的图表。
graphql - 你可以使用 GraphQL 创建记录吗?
GraphQL 是否具有操作记录的能力(即 POST/PUT/PATCH/DELETE)?如果不需要,GraphQL 是否需要与 RESTful API 结合来创建/修改记录?
reactjs - 使用 GraphiQL 或 GraphQL 端点生成 schema.json
我在创建可以使用 babel-relay-plugin 解析而不会遇到错误的 schema.json 文件时遇到问题。查看中继的示例文件夹中包含的schema.json文件,我尝试在 GraphiQL 中复制查询,但似乎无法正确处理。我使用Laravel作为后端。这是我可以通过 GraphiQL 完成还是向 GraphQL 端点发送请求并保存响应?
尝试解析 schema.json 文件时发生的错误:
使用 GraphiQL 的最后一次尝试:
immutable.js - 带有 Relay-GraphQL 突变的 undo-redo 状态遍历模式
使用 Immutable 和 Flux 实现实现撤消/重做功能基本上是微不足道的。这部分是由于 Immutable 使得值传递成为可能,部分是由于使用 Flux 的浏览器/内存特性。
然而,用 Relay-GraphQL 突变来概念化这一点并不明显。是否有任何已知的模式可以简化这一点?
javascript - 使用中继的身份验证和访问控制
Facebook 的官方说法是 Relay “故意不知道身份验证机制”。在 Relay 存储库中的所有示例中,身份验证和访问控制是一个单独的问题。在实践中,我还没有找到一种简单的方法来实现这种分离。
Relay 存储库中提供的示例都具有根模式,其中包含一个viewer
假设有一个用户的字段。该用户可以访问所有内容。
然而,实际上,一个应用程序有很多用户,每个用户对每个节点的访问程度都不同。
假设我在 JavaScript 中有这个模式:
从查询用户的角度来看,一些用户是完全私有的。其他用户可能只向查询用户公开某些字段。因此,要获得用户,客户端不仅必须提供他们正在查询的用户 ID,而且还必须标识自己,以便进行访问控制。
这似乎很快变得复杂,因为控制访问的需要在图表中逐渐减少。
此外,我需要控制每个根查询的访问,例如nodeField
. 我需要确保每个节点都实现nodeInterface
.
所有这些似乎都是重复性的工作。是否有任何已知的模式可以简化这一点?我想错了吗?
graphql - 使用 Relay 验证用户输入
从外观上看,使用 Relay 进行验证的最佳方法似乎是在您的模式中使用自定义 GraphQL 标量类型。是这样吗?