Ошибка: не удалось найти тип или пространство имен «GraphQLRequest» - PullRequest
0 голосов
/ 26 июня 2019

Когда я писал следующий код, Visual Studio показывает ошибку, которая указывает на то, что она не может найти что-то под названием GraphQL, даже если я установил пакет из nuget по этой ссылке: 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 }
};

1 Ответ

0 голосов
/ 26 июня 2019

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 будет выглядеть примерно так:

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

...