我正在开发一个在hapi之上提供的graphql + relay应用程序,并希望支持使用UPDATE
(SELECT A.VIN
FROM table1 A
INNER JOIN table2 B
ON A.OBJ = B.POID
WHERE B."device ID" = 'TCAXLcKkt3'
) t
SET T.VIN = '5TDKK3DC6BS018229'
mime类型对graphql端点的请求。
在这里,您可以看到我将POST请求发送到graphql端点。
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var user = PFUser.currentUser()?.username!
let bucketCellObj = tableView.dequeueReusableCellWithIdentifier("bucket", forIndexPath: indexPath) as! BucketTableViewCell
var query = PFQuery(className: "Bucket")
query.whereKey("creator", equalTo: user!)
query.findObjectsInBackgroundWithBlock { (PFObject, error) -> Void in
if error == nil {
bucketCellObj.bucketname.numberOfLines = 0
bucketCellObj.username.text = self.bucketsArray[indexPath.row]["creator"] as? String
bucketCellObj.bucketname.text = self.bucketsArray[indexPath.row]["name"] as? String
bucketCellObj.selectionStyle = .None
} else {
print("ERROR")
}
}
return bucketCellObj
}
我的hapi服务器选项中没有任何地方可以找到mime类型的明确配置,而不是一些简洁的文档here。
我已按照以下设置选项mime配置,将选项传递到服务器实例,但我仍然看到application/graphql
错误。
~> curl -X POST --header "Content-Type:application/json" -d '{"query":"{content(id:\"13381672\"){title,id}}"}' http://127.0.0.1:8000/graphql
{"data":{"content":{"title":"Example Title","id":"13381672"}}}
~> curl -X POST --header "Content-Type:application/graphql" -d '{"query":"{content(id:\"13381672\"){title,id}}"}' http://127.0.0.1:8000/graphql
{"statusCode":415,"error":"Unsupported Media Type"}
这里有没有其他人有hapi这种经验?
答案 0 :(得分:2)
每个路由都有allow
配置选项,该选项采用application/graphql
属性,让hapi知道哪些mimetypes允许该路由。如果您将其设置为parse
,将false
选项设置为server.route({
method: ['POST', 'PUT'],
path: '/graphql',
config: {
payload: {
parse: false,
allow: 'application/graphql'
}
},
handler: function(request, reply) {
reply(request.payload)
}
})
,则您的请求将有效。
不幸的是,您必须自己解析有效负载。
以下是一个示例路线:
VideoRepository