我正在为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-tag:
const gql = require('graphql-tag');
const query = `
{
qQueryEndpoint {
id
}
}
`;
const obj = gql`
${query}
`;
console.log('operation', obj.definitions[0].operation);
console.log('name', obj.definitions[0].selectionSet.selections[0].name.value);
打印输出:
operation query
name qQueryEndpoint
随着你的突变:
operation mutation
name saveSomething
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句