You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用GraphiQL Playground中自动生成的过滤器?

如何禁用GraphiQL中自动生成的过滤器

这些name_contains、name_ends_with之类的自动过滤器,不是GraphiQL Playground自己生成的,而是后端GraphQL服务在定义Schema时自动加上的(比如用Prisma、Hasura、TypeGraphQL这类工具时的默认配置)。要清理界面,得从后端Schema层面调整:

1. 用Prisma + GraphQL的情况

  • 在Prisma Schema里,对不需要过滤的字段,通过调整生成规则禁用:
    model User {
      id    Int     @id @default(autoincrement())
      name  String  // 默认会生成过滤字段,要禁用的话
      // 要么在resolver里自定义查询,不暴露自动生成的过滤参数
      // 要么用nexus-prisma时,指定允许过滤的字段:
      // t.crud.user({ filterableFields: ['id'] }) 只留id的过滤
    }
    
  • 要是用nexus-prisma定义查询,直接通过filterableFields限制允许的过滤字段,多余的就不会出现在Schema里。

2. 用Hasura的情况

  • 进Hasura控制台,找到对应数据表的Permissions标签,在角色的Select权限里,修改Filter选项,删掉不需要的自动过滤条件,或者只保留需要的字段过滤。
  • 也可以直接在Data -> 对应表 -> Schema里,手动编辑GraphQL Schema,移除Input类型里多余的过滤字段。

3. 自定义GraphQL Schema的情况

自己写Schema时,只定义需要的过滤参数就行,别加那些额外的:

input UserFilterInput {
  id: Int
  name: String # 只保留精确匹配,不写contains/ends_with这类字段
}

type Query {
  users(filter: UserFilterInput): [User]
}

关键提醒

GraphiQL只是展示后端返回的Schema,没法通过自身设置隐藏这些过滤器,必须修改后端提供的Schema,才能让探索器界面不再显示这些多余选项。

内容的提问来源于stack exchange,提问作者A23149577

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 04:52:47