HotChocolate未忽略指定字段:Password字段仍在API响应中返回
解决HotChocolate忽略Password字段不生效的问题
问题核心是你自定义的AccountType未被HotChocolate加载,框架自动为Account生成了默认类型配置,导致descriptor.Ignore(f => f.Password)的设置未生效。以下是几种可行的解决方法:
方法1:注册自定义类型到GraphQL服务器
修改program.cs中的GraphQL服务配置,添加自定义的AccountType:
builder.Services .AddHttpContextAccessor() .AddDbContext<DataContext>() .AddGraphQLServer() .AddAuthorization() .AddQueryType<Query>() .AddMutationType<Mutations>() .AddTypeExtension<AccountMutations>() .AddTypeExtension<AccountQuery>() .AddType<AccountType>(); // 新增此行注册自定义类型
方法2:在实体类上指定使用自定义类型
在Account类上添加[GraphQLType(typeof(AccountType))]特性,明确告知HotChocolate使用你定义的类型:
[GraphQLType(typeof(AccountType))] public class Account { // ... 原有字段 }
方法3:直接在字段上添加忽略特性
若无需自定义其他类型配置,可直接在Password字段上添加[GraphQLIgnore]特性,实现更简洁:
[Required] [StringLength(512)] [GraphQLIgnore] // 新增此行忽略字段 public string Password { get; set; }
三种方法任选其一即可解决Password字段被返回的问题,可根据实际需求选择。
内容的提问来源于stack exchange,提问作者Androme
相关产品推荐
相关产品推荐

