我尝试过使用graphql的变量, 但似乎无法使用'application / graphql'发送变量。
我是否应该转到Content-Type:'application / json'?
答案 0 :(得分:2)
http://graphql.org/learn/serving-over-http/#post-request
标准的GraphQL POST请求应使用application / json内容类型,并包含以下格式的JSON编码主体:
{
"query": "...",
"operationName": "...",
"variables": { "myVariable": "someValue", ... }
}
operationName和变量是可选字段。只有在查询中存在多个操作时才需要operationName。
除上述内容外,我们建议另外支持两种情况:
... 如果" application / graphql"存在Content-Type标头,将HTTP POST主体内容视为GraphQL查询字符串。
据我了解,Content-Type: "application/graphql"
是无变量查询的简写。
所以我的答案是"是的,如果我想使用变量字段,我必须使用Content-Type: "application/json"
标题
答案 1 :(得分:0)
什么阻止您传递查询字符串中的变量和正文中的查询?
POST /graphql?variables={"id":1234}
Content-Type: application/graphql
query ($id: ID!) {
Post(id: $id) {
id
title
body
}
}
答案 2 :(得分:0)
根据Facebook的express-graphql HTTP Usage,变量可以作为URL参数传递。这是一个示例:
/graphql?query=query+getUser($id:ID){user(id:$id){name}}&variables={"id":"4"}
对于application/json
,有单独的变量部分。对于带有application/graphql
和GET请求的POST正文,可以使用URL查询:variables={...}
。