插件配置
插件配置浏览、启用和禁用模块

浏览、启用和禁用模块

Gato GraphQL 的所有功能都通过模块提供。点击插件菜单中的「Modules」即可访问:

模块

每个模块都可以启用或禁用。其状态在表格中可见:

  • 已启用的模块具有彩色背景
  • 已禁用的模块具有白色背景

启用/禁用模块

将鼠标悬停在已禁用模块的名称上时,会显示链接 "Enable"。点击该链接即可启用该模块:

启用模块

同样,将鼠标悬停在已启用模块的名称上时,会显示链接 "Disable"。点击该链接即可禁用该模块。

批量操作

此外,也可以勾选每个模块的复选框,然后从「Bulk actions」下拉菜单中选择 "Enable""Disable"

批量禁用模块

在公开端点和私有端点中禁用模块

禁用模块可以从 GraphQL 服务器中删除某些功能(例如:single endpoint),或从 GraphQL schema 中删除某些元素(例如:类型、字段或指令)。

「Schema 模块(Schema modules)」是指那些向 GraphQL schema 添加类型、字段或指令的模块(可在 Modules 页面的「Schema Type」和「Schema Directive」分类下找到)。通过禁用所有不需要的「Schema 模块」,可以提升 GraphQL API 的安全性,因为不应被访问的数据从一开始就不会暴露。

例如,禁用「Users」模块后,用户字段(QueryRoot.usersPost.author 等)将从 GraphQL schema 中移除。

因此,禁用端点(如上一节所述)始终对公开端点生效:

  • Single endpoint
  • Custom endpoints
  • Persisted queries

但是,我们可能只想对访问者(即公开端点)限制对「Schema 模块」的访问,而不想限制站点管理员在私有端点上的访问,以免妨碍其使用完整 GraphQL schema 执行内部任务。

私有端点包括:

  • 端点 wp-admin/edit.php?page=graphql_api&action=run_query(用于驱动管理员的 GraphiQL 和 Interactive Schema 客户端,也可从 WordPress 编辑器调用以向区块提供数据)
  • 自定义私有端点(同样用于向区块提供数据,但允许通过 PHP 钩子锁定其配置)
  • 内部执行的 GraphQL queries(通过 PHP 中的 GraphQLServer 类)

若要在私有端点上也禁用「Schema 模块」,需要在设置页面的「Plugin Configuration > Private Endpoints」标签中,勾选「Disable "Schema modules" in the private endpoints?」进行配置。

批量禁用模块

模块依赖关系

每个模块都可能依赖另一个模块。在这种情况下,如果被依赖的模块被禁用,依赖它的模块也会被禁用。

此信息在模块表格的 "Depends on" 列中可见:

模块依赖关系

例如,如果「Schema Configuration」模块被禁用,「Schema Namespacing」模块也会被禁用。

筛选模块

模块按类别分组:

  • Plugin Management
  • Endpoint
  • Schema Configuration
  • Access Control
  • Versioning
  • User Interface
  • Performance
  • Operational
  • Client
  • Schema Type

点击任意类别,将只显示对应的模块。

筛选模块

查看模块文档

点击模块描述下方的链接 "View details",即可阅读该模块的文档:

查看模块文档

访问模块设置

将鼠标悬停在模块名称上时,会显示链接 "Settings"(除非该模块没有设置项)。

点击该链接将打开设置页面,并聚焦于该模块的标签页:

访问模块设置