我正在为graphql实现一个node interface--一个非常标准的设计模式。
寻找有关实现graphql节点查询解析器的最佳方法的指导
第一个月
我正在努力解决的主要问题是如何编码/解码ID和类型名,以便我们可以找到正确的表/集合进行查询。
目前我使用PostgreSQL uuid策略和pgcrytpo来生成id。
在应用程序中的正确接缝是什么?:
1.可以在数据库的主键生成中完成
1.可以在graphql接缝处完成(可能使用访问者模式)
一旦选择了最佳接缝:
1.如何/在哪里编码/解码?
注意我的stack是:
- ApolloClient/Server(来自graphql-yoga)
- 节点
- TypeORM
- PostgreSQL
2条答案
按热度按时间4zcjmb1e1#
暴露给客户端的
id
(全局对象id)不会持久化在后端--编码和解码应该由GraphQL服务器自己完成。下面是一个基于relay的粗略示例:字符串
注意:通过返回
__typename
,我们让GraphQL的默认resolveType
行为确定接口返回的类型,因此不需要为__resolveType
提供解析器。编辑:将
id
逻辑应用于多种类型:型
mdfafbf12#
@Jonathan我可以分享我的一个实现,你可以看看你的想法。这是在客户端上使用
graphql-js
、MongoDB
和relay
。字符串
然后:
型
load
方法解析实际对象。这一部分你将有更具体的工作与您的数据库等。如果不清楚,你可以问!希望有帮助:)