【发布时间】:2018-08-09 09:03:49
【问题描述】:
我正在为 GraphQL 运行 Apollo lambda 服务器。我想从 POST 请求正文中截取 GraphQL 查询/突变并对其进行解析,以便找出请求所要求的查询/突变。环境是 Node.js。
请求不是 JSON,而是 GraphQL 查询语言。我环顾四周,试图找到一种方法将其解析为我可以导航的对象,但我正在画一个空白。
Apollo 服务器必须以某种方式解析它以引导请求。有谁知道会执行此操作的库或有关如何解析请求的指针?请求正文的示例以及我要在下面检索的内容。
{"query":"{\n qQueryEndpoint {\n id\n }\n}","variables":null,"operationName":null}
我想确定这是一个查询,并且正在询问 qQueryEndpoint。
{"query":"mutation {\\n saveSomething {\\n id\\n }\\n}","variables":null}
我想确定这是一个突变,并且正在使用 saveSomething 突变。
我的第一个想法是去掉换行符并尝试使用正则表达式来解析请求,但这感觉是一个非常脆弱的解决方案。
【问题讨论】:
-
我的问题是错误的。请求是 GraphQL 查询语言,而不是 AST。我已编辑。感谢您的意见!
-
@GabrielBleu 根据我对文档的理解,该包从对象生成查询,而不是从查询中生成对象。
-
它解析查询字符串并返回一个对象,但npmjs.com/package/graphql-tag 似乎更受欢迎。
标签: javascript node.js graphql apollo-server