gpt4 book ai didi

c# - Dotnet 使用 graphQL 客户端,数据响应未映射

转载 作者:行者123 更新时间:2023-12-05 04:54:23 26 4
gpt4 key购买 nike

我在 .NET Core 3.1 项目上使用最后一个 GraphQL 客户端 NuGet 包 (3.2.1) 并调用 GraphQL API。

当我执行“SendQueryAsync()”或“SendMutationAsync()”时,响应状态代码正常,但数据属性始终为 Null。

我认为这与序列化有关,但我不知道问题出在哪里。

我如何使用它

var graphQLClient = new GraphQLHttpClient(new GraphQLHttpClientOptions { EndPoint = new Uri(_graphQLEndPoint) }, new NewtonsoftJsonSerializer(), httpclient);

var request = new GraphQLRequest
{
Query = @"query CurrentUserCards {
currentUser {
cardsCount
cards {
name
pictureUrl
position
player {
displayName
}
}
}
}"
};
var data = await graphQLClient.SendQueryAsync<Data>(request);

即使我将“Rootobject”类放入它也是空的。

我的模型

我使用 Visual Studio 上的“将 JSON 作为类粘贴”功能从 JSON 结果生成了我的模型。

public class Rootobject
{
public Data data { get; set; }
}

public class Data
{
public Currentuser currentUser { get; set; }
}

public class Currentuser
{
public int cardsCount { get; set; }
public Card[] cards { get; set; }
}

public class Card
{
public string name { get; set; }
public string pictureUrl { get; set; }
public string position { get; set; }
public Player player { get; set; }
}

public class Player
{
public string displayName { get; set; }
}

postman 的回应

{
"data": {
"currentUser": {
"cardsCount": 12,
"cards": [
{
"name": "Henry",
"pictureUrl": "",
"position": "Coach",
"player": {
"displayName": "Thierry Henry",

}
},
{
"name": "Zidane",
"pictureUrl": "",
"position": "Coach",
"player": {
"displayName": "Zinedine Zidane",
}
}
...
]
}
}

最佳答案

我通过删除 Rootobject 类并使用 Data 类作为根解决了这个问题。我认为响应始终具有数据属性,因此它会在反序列化中跳过该属性。

关于c# - Dotnet 使用 graphQL 客户端,数据响应未映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65794056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com