以下是我在Python 3中使用的内容:
payload={"query": """query
{
organization(login: "MY-ORG-ID") {
samlIdentityProvider {
externalIdentities(first: 10) {
edges {
node {
user {login}
samlIdentity {nameId}
scimIdentity {username}
}
}
}
}
}
}"""
}
URL = 'https://api.github.com/graphql'
HEADERS = {'accept': 'application/vnd.github.v4.idl', 'authorization': 'bearer MY-GITHUB-TOKEN'}
response = requests.post(url=URL, json=payload, headers=HEADERS)
它运作正常。
但是,我试图在POSTMAN工具中使用此查询,但不知道如何执行此操作。我尝试删除3双引号""" """
,我收到Unexpected 'q'
错误。当我使用双引号而不是3引号和login: \"MY-ORG-ID\"
时,我会收到"message": "Problems parsing JSON"
错误。
标题和网址没有问题。我只是为了完整而把它们放在这里。
答案 0 :(得分:10)
如果您尝试在邮递员应用中将查询输入到帖子请求的正文中,则实现多行的快速解决方法是在您的身体中使用环境变量形式的占位符并输入在预请求脚本中查询:
在你体内:
{
"query":{{query}}
}
在您的预请求脚本中:
pm.environment.set("query", JSON.stringify(
`
query {
organization(login: "MY-ORG-ID") {
samlIdentityProvider {
externalIdentities(first: 10) {
edges {
node {
user {login}
samlIdentity {nameId}
scimIdentity {username}
}
}
}
}
}
}
`
));
请注意,上面的代码中的`是反引号,而不是单引号!
它不是有史以来最好的解决方案,但是迄今为止唯一一个在Postman中为我工作以避免在一行中输入更复杂的查询/突变的解决方案。
希望这有帮助。
答案 1 :(得分:2)
显然不能,因此您需要将多行字符串转换为单个字符串。
最快的方法是将其粘贴到Web浏览器搜索栏中以更改格式,然后将其从Web浏览器搜索栏中复制并粘贴回邮递员中。
答案 2 :(得分:1)
Python中的三引号表示一个多行字符串对吗?那么试试双引号和login: \"MY-ORG-ID\"
并将整个查询放在一行?
{
"query":"query{organization(login: \"MY-ORG-ID\") {samlIdentityProvider {externalIdentities(first: 10) {edges {node {user {login}samlIdentity {nameId}scimIdentity {username}}}}}}}"
}