在GraphQL中检索对象ID
问题描述:
我想知道是否有可能通过查询获取对象的“原始ID”。每当我向服务器发出请求时,都会返回节点“全局标识符”,如U29saWNpdGFjYW9UeXBlOjEzNTkxOA==
。在GraphQL中检索对象ID
查询是类似这样的:
{
allPatients(active: true) {
edges {
cursor
node {
id
state
name
}
}
}
和回报是:
{
"data": {
"edges": [
{
"cursor": "YXJyYXljb25uZWN0aW9uOjA=",
"node": {
"id": "U29saWNpdGFjYW9UeXBlOjEzNTkxOA==",
"state": "ARI",
"name": "Brad"
}
}
]
}
}
我怎样才能在数据库级别对象的“原始”的ID(如“ 112')而不是那个节点的唯一标识符?
ps .:我在服务器端使用graphene-python和Relay。
答
在this GitHub issue,graphene
的作者syrusakbary建议有有效的在你的数据库的映射表来跟踪这个映射:
通常用于映射这种随机ID的输入+号是非常有用的一个“效用表“存储对应于每个”UUID“的表/类型。
这是在版本1.0中,可见于this unit test。
对于您的具体情况,您可能会经常向您的类型添加另一个字段,其他字段为id
,或许是db_id
或original_id
?
如何使用这个新字段'original_id'来引用模型ID? – almanegra