当我编写以下代码时,visual studio 显示一个错误,表明即使我在此链接上安装了来自 nuget 的包,它也找不到名为 GraphQL 的东西:https://www.nuget.org/packages/GraphQL/并使用 GraphQL.Http 输入;
var query = @"query($id: String) { device (id: $id) { displayName, id } }";
var request = new GraphQLRequest()
{
Query = query,
Variables = new { id = 123 }
};
最佳答案
GraphQLRequest 不是作为 GraphQL 包的一部分提供的类,它是您自己创建的类。
例如,
public class GraphQLQuery
{
public string OperationName { get; set; }
public string NamedQuery { get; set; }
public string Query { get; set; }
public JObject Variables { get; set; }
}
此类定义了您尝试设置的 Query 和 Variables 属性。然后,您将传递此对象以进行查询。
API Controller 中的代码如下所示:
public async Task<IActionResult> Post([FromBody] GraphQLQuery query)
{
var inputs = query.Variables.ToInputs();
var result = await new DocumentExecuter().ExecuteAsync(_ =>
{
_.Schema = productSchema;
_.Query = query.Query;
_.OperationName = query.OperationName;
_.Inputs = inputs;
}).ConfigureAwait(false);
return Ok(result);
}
更多信息的实现来源:https://github.com/JacekKosciesza/StarWars
关于c# - 错误 : The type or name space "GraphQLRequest" could not be found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56773130/