Запрос GraphQL в .NET Core возвращает пустой результат - PullRequest
0 голосов
/ 13 февраля 2019

В настоящее время у меня настроен один простой запрос (ArticleQuery), который включает в себя два поля.Первое поле принимает идентификатор и возвращает соответствующие данные - это поле работает так, как я ожидал, и работает.Второе поле (с именем articles) должно возвращать все объекты в таблице, однако при выполнении запроса ниже с интерфейсом GraphiQL мне возвращается пустая строка.

Запрос:

query GetArticleData(){
  articles {
    id
    description
  }
}

Где ArticleQuery выглядит следующим образом:

    public class ArticleQuery : ObjectGraphType
    {
        public ArticleQuery(IArticleService articleService)
        {
            Field<ArticleType>(
                name: "article",
                arguments: new QueryArguments(new QueryArgument<IntGraphType> { Name = "id" }),
                resolve: context =>
                {
                    var id = context.GetArgument<int>("id");
                    return articleService.Get(id);
                }
            );

            Field<ListGraphType<ArticleType>>(
                name: "articles",
                resolve: context =>
                {
                    return articleService.GetAll();
                }
            );
        }
    }

Обратите внимание, что точки останова, установленные внутри метода articleService.GetAll(), никогда не достигаются.

И, наконец, ArticleTypeкласс:

    public class ArticleType : ObjectGraphType<ArticleViewModel>
    {
        public ArticleType()
        {
            Field(x => x.Id).Description("Id of an article.");
            Field(x => x.Description).Description("Description of an article.");
        }
    }

почему мой запрос возвращает пустую строку вместо моего списка статей и как я могу это исправить?

1 Ответ

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

После дополнительной игры кажется, что форматирование моего запроса было неправильным.Это должно было быть:

query GetArticleData{
  articles {
    id
    description
  }
}

вместо:

query GetArticleData(){
  articles {
    id
    description
  }
}

, поскольку скобки нужны только при указании переменных запроса и должны быть исключены в противном случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...