python – 在GraphQL中检索对象ID

我想知道是否有可能获得对象的“原始id”作为查询的结果.每当我向服务器发出请求时,它都会返回节点“全局标识符”,例如U29saWNpdGFjYW9UeXBlOjEzNTkxOA ==.

该查询与此类似:

{
  allPatients(active: true) {
    edges {
      cursor
      node {
        id
        state
        name
      }
    }
  }

而回报是:

{
  "data": {
      "edges": [
        {
          "cursor": "YXJyYXljb25uZWN0aW9uOjA=",
          "node": {
            "id": "U29saWNpdGFjYW9UeXBlOjEzNTkxOA==",
            "state": "ARI",
            "name": "Brad"
          }
        }
      ]
  }
}

如何在数据库级别(例如’112′)获取对象的“原始”id而不是该节点唯一标识符?

ps.:我在服务器端使用graphene-python和Relay.

解决方法:

第一个选项,删除relay.Node作为objectNode声明的接口.

第二个选项,使用自定义resolve_id fonction返回id原始值.

class objectNode(djangoObjectType):

    .... Meta ....

    id = graphene.Int(source="id")

    def resolve_id("commons args ...."):
        return self.id

希望能帮助到你

上一篇:graphql,前端直接查询数据库


下一篇:Graphql 初体验 第五章 | #7 Dynamic Relations