ID是否在Graphql查询中自动加密?
在我的数据库postgres中,我存储了一个事件表,每个事件都有一个UUID类型的id列。但当我发送GraphQL查询时,我收到的id不是字符串UUID,而是某种加密版本 如果这些信息有用的话,我会在服务器端使用继电器和石墨烯ID是否在Graphql查询中自动加密?,graphql,relay,Graphql,Relay,在我的数据库postgres中,我存储了一个事件表,每个事件都有一个UUID类型的id列。但当我发送GraphQL查询时,我收到的id不是字符串UUID,而是某种加密版本 如果这些信息有用的话,我会在服务器端使用继电器和石墨烯 query { allEvents { edges { node { id } } } } { "data": { "allEvents": { "edges": [
query {
allEvents {
edges {
node {
id
}
}
}
}
{
"data": {
"allEvents": {
"edges": [
{
"node": {
"id": "RXZlbnQ6NzRkZTIxZmUtZWQyNy00OTg1LTk2NjEtNmU4ZDUzMGEwMjQ3"
}
}
]
}
}
}
一个常见的实现选择是对查询中显示的ID和游标值进行base64编码。如果您对问题中输入的字符串进行base64解码,您将再次找到UUID 在GraphQL级别上,ID只不过是一个不透明的ID。它本身并没有说明太多,只是它序列化为一个字符串,但可以接受一个数字作为输入。我使用过的大多数面向应用程序的服务器库也没有像其他标量类型一样,在ID周围添加太多特殊的语义 关于节点顶级查询的文档的最后一段也强烈认为应用程序不应该合成ID值,因此base64编码至少向消费者暗示不应该理解该值。这里的base64编码在GraphQL中不是通用的或硬编码的,应用程序或库可以根据需要选择不同的ID方案