如何在 python 函数中编写 graphQL 突变?
How do I write a graphQL mutation in a python function?
我想创建一个简单的 graphQL 突变的 python 函数。我有一个 graphQL 模式,并且有一个通过提供对象 ID 来删除对象的突变。
GraphQL 文档显示:
delete(
id: ID!
): Boolean!
要使用全局 ID 删除对象,我尝试创建一个 python 函数,但我收到 graphQL 的语法错误,我无法弄清楚。
#function to delete FIB
def deleteObj(self,id): # returns FIB deletion boolean
objDel = self.graphQLClient.fetch("""
mutation delete($id: [ID!]!) {
delete(id: $id,) {
id
}
}
""", {
'id': id ,
})
info('***Object deletion result %s\n' % objDel)
我能理解我犯了一些愚蠢的错误,但解释会在以后帮助我。
我得到的错误是:
fib deletion result {'data': None, 'errors': [{'message': 'Syntax
Error GraphQL request (3:34) Unexpected empty IN {}\n\n2:
mutation delete($id: [ID!]!) {\n3: delete(id: $id,)
{\n ^\n4: \n', 'locations':
[{'line': 3, 'column': 34}]}]}
我可以像这样使用突变插入对象:
def insertFibEntry(self, prefix, name): # returns FIB entry ID
fib = self.graphQLClient.fetch("""
mutation insertFibEntry($name: Name!, $nexthops: [ID!]!) {
insertFibEntry(name: $name, nexthops: $nexthops) {
id
}
}
""", {
'name': "/"+prefix ,
'nexthops': [self.faces[name]['data']['createFace']['id']]
})
info('***fib result %s\n' % fib)
info('***prefix is %s'% "'/"+prefix+"'"+ '\n')
以上问题的解答如下-
#function to delete obj
def deleteObj(self,id): # returns obj deletion boolean
objDel = self.graphQLClient.fetch("""
mutation delete($id:ID!) {
delete(id: $id)
}
""", {
'id': id
})
info('***fib deletion result %s\n' % objDel)
我想创建一个简单的 graphQL 突变的 python 函数。我有一个 graphQL 模式,并且有一个通过提供对象 ID 来删除对象的突变。 GraphQL 文档显示:
delete(
id: ID!
): Boolean!
要使用全局 ID 删除对象,我尝试创建一个 python 函数,但我收到 graphQL 的语法错误,我无法弄清楚。
#function to delete FIB
def deleteObj(self,id): # returns FIB deletion boolean
objDel = self.graphQLClient.fetch("""
mutation delete($id: [ID!]!) {
delete(id: $id,) {
id
}
}
""", {
'id': id ,
})
info('***Object deletion result %s\n' % objDel)
我能理解我犯了一些愚蠢的错误,但解释会在以后帮助我。
我得到的错误是:
fib deletion result {'data': None, 'errors': [{'message': 'Syntax Error GraphQL request (3:34) Unexpected empty IN {}\n\n2:
mutation delete($id: [ID!]!) {\n3: delete(id: $id,) {\n ^\n4: \n', 'locations': [{'line': 3, 'column': 34}]}]}
我可以像这样使用突变插入对象:
def insertFibEntry(self, prefix, name): # returns FIB entry ID
fib = self.graphQLClient.fetch("""
mutation insertFibEntry($name: Name!, $nexthops: [ID!]!) {
insertFibEntry(name: $name, nexthops: $nexthops) {
id
}
}
""", {
'name': "/"+prefix ,
'nexthops': [self.faces[name]['data']['createFace']['id']]
})
info('***fib result %s\n' % fib)
info('***prefix is %s'% "'/"+prefix+"'"+ '\n')
以上问题的解答如下-
#function to delete obj
def deleteObj(self,id): # returns obj deletion boolean
objDel = self.graphQLClient.fetch("""
mutation delete($id:ID!) {
delete(id: $id)
}
""", {
'id': id
})
info('***fib deletion result %s\n' % objDel)