在ASP.NET Core GraphQL中访问嵌套字段中的参数,可以通过以下步骤实现:
Query
,其中包含一个嵌套字段user
,该字段接受一个参数id
,可以如下定义:type Query {
user(id: ID!): User
}
type User {
id: ID!
name: String
posts(filter: PostFilter): [Post]
}
input PostFilter {
keyword: String
limit: Int
}
在上述模式中,user
字段接受一个id
参数,并返回一个User
对象。User
对象具有一个嵌套字段posts
,该字段接受一个PostFilter
参数,并返回一个Post
对象的列表。
public class QueryResolver
{
public User GetUserById([Service] IUserRepository userRepository, int id)
{
return userRepository.GetUserById(id);
}
}
public class UserResolver
{
public IEnumerable<Post> GetPosts([Parent] User user, PostFilter filter)
{
// 根据filter参数过滤用户的帖子
// 返回帖子列表
}
}
在上述代码中,QueryResolver
类包含一个名为GetUserById
的方法,该方法接受一个id
参数,并返回一个User
对象。UserResolver
类包含一个名为GetPosts
的方法,该方法接受一个User
对象和一个PostFilter
参数,并返回一个Post
对象的列表。
public void ConfigureServices(IServiceCollection services)
{
// 注册GraphQL解析器
services.AddScoped<QueryResolver>();
services.AddScoped<UserResolver>();
// 注册GraphQL服务
services.AddGraphQLServer()
.AddQueryType<QueryResolver>()
.AddType<UserResolver>();
}
在上述代码中,QueryResolver
和UserResolver
类被注册为解析器服务。然后,使用AddGraphQLServer
方法将解析器添加到GraphQL服务中。
完成上述步骤后,就可以通过发送GraphQL查询来访问ASP.NET Core GraphQL中嵌套字段中的参数。例如,可以使用GraphQL客户端发送以下查询:
query {
user(id: 1) {
id
name
posts(filter: { keyword: "GraphQL", limit: 10 }) {
id
title
}
}
}
上述查询将返回具有指定id
的用户信息,并且仅返回标题包含关键字"GraphQL"的前10个帖子。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云