graphiql 发送为 post 正文而不是查询字符串

graphiql send as post body instead of query string

在 Node 上,我正在使用提供 GraphiQL 的 express-graphql 插件 UI。

此实现中的 GraphiQL 始终将查询作为 GET 查询字符串发送。

但是,据我了解 GraphQL 和 express-graphql 文档,应该也可以在 POST 请求的正文中发送查询。

有没有办法让 GraphiQL(即浏览器 IDE)在 POST 正文中发送查询?

2017 年 2 月 26 日附录:

我想我自己找到了我需要知道的东西。

无论出于何种原因,我的查询字符串中都有查询。像这样:

[myhostname]?query={users{[myfields]}}

我忽略了这一点。

正如 express-graphql 文档指出的那样:

If not found in the query-string, it will look in the POST request body.

这反过来意味着:如果在查询字符串中找到,它将不会在请求正文中查找。

因此它被视为 GET 请求。

所以我需要做的就是从查询参数中清除我的 URL,并且请求以 POST 正文到达。

这基本上就是我需要知道的全部内容。

所以这真的是一个草率的错误,我没有正确地观察 URL 即没有注意到查询字符串中有一个查询。

GraphiQL 是一个 React 组件,可以完全自定义将数据发送到服务器的方式 (fetcher)。 express-graphql 中间件基本上从 cdn 中提取转译的 GraphiQL 代码,并将包含它的静态 html 页面发送到客户端:https://github.com/graphql/express-graphql/blob/master/src/renderGraphiQL.js

有了这些知识,您基本上可以在单独的路线上执行相同的操作,并关闭来自 express-graphql

的内置 GraphiQL

另请查看 GraphiQL 文档:https://github.com/graphql/graphiql!