0

GraphQL 新手。在 c# .net core 3.1 控制台应用程序中使用 GraphQL.Client 库。

我正在尝试使订阅正常工作并每次都获得以下内容:

错误

堆

我可以让查询正常工作,因此我知道我已将 auth 标头正确添加到我的 GraphQL 客户端。

有问题的代码是:(有效地从我发现的某个地方复制/粘贴)。

文档也看起来像一个非常简单的实现:

https://github.com/graphql-dotnet/graphql-client

private IDisposable CreateSubscription()
        {
            var thisRequest= SubscriptionCreator.CreateMessageUpdatedRequest(DateTime.Now);    
            var stream = GraphClient.CreateSubscriptionStream<MessageUpdted>(thisRequest);

            return stream.Subscribe(
                response => Console.WriteLine($"{response.Data.messageUpdated.id}"),
                exception => Console.WriteLine($"{request.OperationName}: message subscription stream failed: {exception}"),
                () => Console.WriteLine($"{request.OperationName}: message subscription stream completed"));

        }

一些示例模型:

public class MessageUpdated
    {
        public MessageUpdate messageUpdated { get; set; }
    }
    public class MessageUpdate
    {
        public string id { get; set; }
    }

我对此很陌生,以至于我什至不知道我是否真的在.CreateSubscription<>通话中“订阅”了正确的模型。

订阅创建(具有硬编码所需的日期格式):

        public static class Subscriptions
        {
            public static string BasicMessage= @"
    subscription MessageUpdateBasic($date:Time!){
      messageUpdated(dated:$date)
      {
        id
      }
}
    ";
        }

public static class SubscriptionCreator
{
    public static GraphQLRequest CreateMessageUpdatedRequest(DateTime date)
    {
        return new GraphQLRequest()
        {
            Query = Subscriptions.BasicMessage,
            OperationName = "BasicMessageSubscription",
            Variables = new { date = "2021-10-21T00:00:00Z"}
        };
    }
}
4

0 回答 0