从.Net C#控制台应用程序客户端使用和配置Graphql请求
我正在尝试从C#client使用GraphQLAPI。为此,我使用了GraphQl.netnuget包。问题是,我不知道如何设置Api Url,因为我没有从.Net C#控制台应用程序客户端使用和配置Graphql请求,c#,.net,graphql,C#,.net,Graphql,我正在尝试从C#client使用GraphQLAPI。为此,我使用了GraphQl.netnuget包。问题是,我不知道如何设置Api Url,因为我没有HttpRequest对象,这也导致了其他问题,即我无法设置authentication头并随请求发送令牌。我的代码如下所示: public void Post(TestGraphQl.GraphQLQuery query) { var inputs = query.Variables.ToInputs(); var queryTo
HttpRequest
对象,这也导致了其他问题,即我无法设置authentication头并随请求发送令牌。我的代码如下所示:
public void Post(TestGraphQl.GraphQLQuery query)
{
var inputs = query.Variables.ToInputs();
var queryToExecute = query.Query;
var result = _executer.ExecuteAsync(_ =>
{
_.Schema = _schema;
_.Query = queryToExecute;
_.OperationName = query.OperationName;
_.Inputs = inputs;
//_.ComplexityConfiguration = new ComplexityConfiguration { MaxDepth = 15 };
_.FieldMiddleware.Use<InstrumentFieldsMiddleware>();
}).Result;
var httpResult = result.Errors?.Count > 0
? HttpStatusCode.BadRequest
: HttpStatusCode.OK;
var json = _writer.Write(result);
}
我对这个话题完全陌生,非常感谢您的帮助。非常感谢 不确定您是否还在寻找它。可以始终使用GraphQl.Client nuget来实现这一点。要使用的示例代码是
var query=@“查询($id:String){device(id:$id){displayName,id}}”;
var request=new GraphQLRequest(){
Query=Query,
变量=新{id=123}
};
var graphQLClient=新的graphQLClient(“http://localhost:8080/api/GraphQL");
graphQLClient.DefaultRequestHeaders.Add(“授权”、“您的令牌”);
var graphQLResponse=等待graphQLClient.PostAsync(请求);
Console.WriteLine(graphQLResponse.Data)代码>这对我来说是可行的。您将需要GraphQL.Client包
var client = new GraphQLHttpClient({Api Url}, new NewtonsoftJsonSerializer());
var request = new GraphQLRequest
{
Query = {query}
};
var response = await client.SendQueryAsync<{Class for deserialization}>(request);
var-client=new-GraphQLHttpClient({Api-Url},new-NewtonsoftJsonSerializer());
var请求=新的GraphQLRequest
{
Query={Query}
};
var response=wait client.SendQueryAsync(请求);
在使用GraphQLHttpClient时,如何处理响应中的节流参数?查询真的应该是字符串吗?任何基于某种模式的库都可以这样做吗?在我的示例中,Graphql.Net客户端就是我使用的。特别是对于查询,它实际上是一个POCO类,应该具有graphql查询的这些基本构建块。例如,公共类GraphQLQueryDTO{public string OperationName{get;set;}公共字符串名称查询{get;set;}公共字符串查询{get;set;}公共字符串变量{get;set;}请尝试此链接以获取完整的示例
var client = new GraphQLHttpClient({Api Url}, new NewtonsoftJsonSerializer());
var request = new GraphQLRequest
{
Query = {query}
};
var response = await client.SendQueryAsync<{Class for deserialization}>(request);