Потребление и настройка запроса Graphql из клиента консольного приложения .Net C # - PullRequest
0 голосов
/ 02 сентября 2018

Я пытаюсь использовать Graphql Api из клиента C #. Для этого я использую пакет GraphQl.Net Nuget. Проблема в том, что я понятия не имею, как установить URL-адрес Api, поскольку у меня нет объекта HttpRequest, и это также приводит к дополнительным проблемам, из-за которых я не могу установить заголовок аутентификации и отправить токен с запросом. Мой код выглядит так:

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);
}

И абонент выглядит так:

var jObject = new Newtonsoft.Json.Linq.JObject();
jObject.Add("id", deviceId);
client.Post(new GraphQLQuery { Query = "query($id: String) { device (id: $id) { displayName, id } }", Variables = jObject });

Я совершенно новичок в этой теме и ценю любую помощь. Большое спасибо !!

1 Ответ

0 голосов
/ 25 февраля 2019

Не уверен, если вы все еще ищете его. Для этого всегда можно использовать GraphQl.Client nuget. Пример кода для использования:

var  query = @"query($id: String) { device (id: $id) { displayName, id } }";
var request = new GraphQLRequest(){
                                Query = query,
                                Variables = new {id =123}  
                            };

var graphQLClient = new GraphQLClient("http://localhost:8080/api/GraphQL");

graphQLClient.DefaultRequestHeaders.Add("Authorization", "yourtoken");

var graphQLResponse = await graphQLClient.PostAsync(request);
            
Console.WriteLine(graphQLResponse.Data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...