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