Rob*_*pta 2 go relay node.js reactjs graphql
我正在尝试构建一个GraphQL endpointsin golang.
我一直在关注这些博客Learn Golang + GraphQL + Relay #1以实现graphQlingolang并且我已经成功构建了GraphQL.
有几个概念对我来说仍然不清楚,因为我如何pagination使用graphQl,还有像这样的方法来构建端点
//How to build endpoints for fetching data from this query
friends.first(1){
cursor,
node {
name
}
}
//or this query
friends.last(1){
cursor,
node {
name
}
}
Run Code Online (Sandbox Code Playgroud)
因为,我来自Angular背景,这个Relay概念对我来说仍然很困惑。中继如何促进客户端和服务器之间的通信。
请提供一些使用 Node 或任何使这些概念更清晰的示例
分页从来都不是一个简单的问题,也不是 GraphQL 明确解决的问题。GraphQL 提供了一个数据获取框架,如何使用该框架来做事情(如分页)取决于开发人员。
在接力队试图用光标连接规范分页规格为GraphQL。游标连接规范不是 Relay 独有的,可以与 Angular 一起使用,该规范的主要目标是提供一种标准化的方式来处理来自 GraphQL 服务器的大型集合。关于此规范的主要注意事项是每个对象都有一个关联的游标。这个关联的游标允许客户端从集合中的任何点恢复分页。
如果您对实现 Relay 规范感兴趣,我鼓励您阅读 Sashko Stubailo 的理解分页:REST、GraphQL 和 Relay,他解释了 Relay 连接规范背后的动机并解释了如何实现它。
要查看实际的连接规范,请查看示例SWAPI GraphQL API,它在 GraphQL 中实现了 Relay 规范。我鼓励您打开文档窗口并浏览PeopleConnection. 请注意它们如何实现edges和people字段。
如果游标分页太复杂而无法使用/实现,您始终可以为 GraphQL API 公开传统的限制/偏移分页。界面大概是这样的:
{
friends(limit: 5, offset: 20) {
name
}
}
Run Code Online (Sandbox Code Playgroud)
最后,您提供的查询来自 GraphQL 的早期技术预览,实际上并不符合规范 ( source )。更合适的查询(如 Hafiz 提到的)是:
{
friends(first: 1) {
cursor
node {
name
}
}
}
Run Code Online (Sandbox Code Playgroud)
React Europe 2015 上有两个很棒的演讲,我也建议您观看,其中更多地讨论了没有 Relay 的 GraphQL。
| 归档时间: |
|
| 查看次数: |
855 次 |
| 最近记录: |