在connection/arrayconnection.js中,似乎所有的函数都倾向于使用array。
例如:offsetToCursor是生成游标的唯一方法。这是否意味着这是我必须遵循的设计模式,还是意味着在使用array.If im计划使用Mongodb时,我应该自己生成游标,是否应该使数据库接口像一个静态数组?
顺便说一下:
作为一个网络发展的新手,我有点困惑如何实现一个合格的中继服务器。
是否有设计图形all中继服务器的指南,我应该一直遵循graphql-relay-js中的哪个数据库Facebook与中继服务器一起使用吗?mysql还是?
我不确定在这里问这是否合适,但图形on中继-js的主题很少出现在网上。
非常感谢,原谅我的无礼。
var PREFIX = 'arrayconnection:';
/**
* Creates the cursor string from an offset.
*/
export function offsetToCursor(offset: number): ConnectionCursor {
return base64(PREFIX + offset);
}补充问题:
也许我可以从developers.facebook.com/docs/graph那里得到一些想法。
似乎应该为分页查找做一个数组样式的缓存(不确定这一点)。但是图形api看起来与graphql中继js有点不同(图形api仍然是旧restful风格的一部分吗?)
图形api和graphql中继js之间的关系是什么?graphql中继js是facebook中设计graphql服务器的通用设计指南吗?非常感谢!请给我一些提示
发布于 2016-01-29 07:21:32
连接是一种设计模式,如果您希望中继执行有效的分页,架构可以实现该模式。如何在后端实现它是一个实现细节。它可能得到数组之类的支持,也可能没有(想想像Facebook上无限滚动的新闻提要,它是由一个非常复杂的后端服务排名的:这显然不是一个数组的支持)。我们提供了arrayconnection.js模块,以演示如何在数据源具有类似数组的特性的情况下做到这一点。如果它没有或者不能有效地转换成它,那么最好从头开始实现一些东西。
游标是不透明的标识符。如果使用数组源或典型的数据库后端(如MySQL),则可以使用数组索引或某种主键,但细节也是特定于实现的,应该选择适合后端。唯一的要求是游标应该对服务器上需要的任何信息进行编码,以便能够在(或之前)返回下一页的结果。
graphql-relay-js只是一个模块集合,为在JavaScript中构建与中继兼容的GraphQL模式提供了一些帮助。模式为您的数据提供了统一的接口,但是实际的底层存储可以是您想要插入的任何东西( MySQL数据库、内存中的对象、REST服务)。对于简单的示例,请查看Relay中的目录。为了说明如何将模式放在非传统数据库的前面,这是一个模式示例,该模式利用Redis中的索引和memcached中的缓存数据从Git中读取其数据。
远离Developers.facebook.com/docs/graph;尽管名称中有“图”,但这是一件完全不同的事情,与中继使用的GraphQL层次查询语言无关。
https://stackoverflow.com/questions/35077630
复制相似问题