创建自定义端点
除单一端点外,Gato GraphQL 还支持自定义端点,可基于自定义 schema(仅包含可用类型的子集)和用户验证规则来检索和提交数据,从而满足不同用户和应用程序的需求。
我们可以按需创建任意数量的自定义端点。
例如,可以为以下场景创建自定义端点:
- 特定客户端或用户,路径为
/graphql/my-client/ - 拥有更多功能访问权限的用户组(如 PRO 用户),路径为
/graphql/pro-users/ - 为移动应用提供数据,路径为
/graphql/mobile-app/ - 向第三方 API 开放访问,路径为
/graphql/external-api/ - 其他场景

在应用程序中调用自定义端点
请按照指南「从客户端连接到 GraphQL 服务器」中的说明操作。
访问所有自定义端点
在插件菜单中点击「Custom Endpoints」,即可显示已创建的所有自定义端点列表:

创建新的自定义端点
点击「Add New GraphQL endpoint」按钮以打开 WordPress 编辑器:

填写标题,确认固定链接符合预期,选择 schema 配置并调整选项。准备就绪后,点击 Publish 按钮,系统将使用所配置的固定链接作为端点 URL 创建自定义端点。
端点(以及源和客户端)的链接会显示在「Custom Endpoint Overview」侧边栏面板中:

Schema 配置
schema 包含哪些元素以及用户的访问权限,均在 schema 配置中定义。
因此,我们需要先创建 schema 配置,然后从下拉菜单中选择(或选择「无」或默认选项):

私有端点
将自定义端点的状态设置为 private,则该端点仅管理员用户可访问。这样可以防止数据被意外共享给不应拥有访问权限的用户。
例如,我们可以创建用于辅助管理应用程序的私有自定义端点,例如获取数据以生成指标报告。

密码保护端点
为特定客户端创建自定义端点时,可以为其分配密码,从而提供额外的安全保障,确保只有该客户端才能访问该端点。

首次访问密码保护端点时(无论是直接访问端点,还是访问其 GraphiQL 或 Interactive Schema 客户端),将会看到一个要求输入密码的页面:

输入并验证密码后,用户才能访问目标端点或客户端:

创建端点层级
请阅读创建 API 层级中的说明。
禁用自定义端点
在选项中将「Enabled」设置为 false 即可禁用自定义端点。
此功能在将自定义端点作为 API 层级的一部分使用时非常有用——可为其子自定义端点提供通用行为,而自身无需被执行。
为自定义端点添加描述
使用文档设置面板中的「Excerpt」字段为自定义端点添加描述。
更多信息请参阅指南「为 API 添加描述」。
端点客户端
每个自定义端点都有专属的客户端集合用于交互。
GraphiQL 客户端
在端点后添加 ?view=graphiql 即可访问其 GraphiQL 客户端:

编辑自定义端点时,也可以通过「Custom Endpoint Overview」侧边栏面板打开 GraphiQL 客户端:

同样,也可以在自定义端点列表页面,将鼠标悬停在条目上时点击「GraphiQL」链接打开客户端:

如需禁用 GraphiQL 客户端,请在自定义端点编辑器中将选项「Expose GraphiQL client?」设置为 false。
Interactive Schema(Voyager)客户端
在端点后添加 ?view=schema 即可访问其 Interactive Schema 客户端,用于可视化和交互式浏览端点的 schema:

编辑自定义端点时,也可以通过「Custom Endpoint Overview」侧边栏面板打开 Interactive Schema 客户端:

同样,也可以在自定义端点列表页面,将鼠标悬停在条目上时点击「Interactive Schema」链接打开客户端:

如需禁用 Interactive Schema 客户端,请在自定义端点编辑器中将选项「Expose the Interactive Schema client?」设置为 false。
发布前测试端点
状态为 draft(草稿)或 pending(待审)的自定义端点仅对 schema 编辑器用户可见。这使他们能够:
- 针对该端点执行 GraphQL queries
- 访问端点的 GraphiQL 和 Voyager 客户端
因此,我们可以创建自定义端点,分配 schema 配置,以 draft 或 pending 状态发布并进行测试(例如:确认访问控制规则是否合适)。
批准后,再将状态设置为 publish,使自定义端点对所有用户可用。
查看源配置
在端点后添加 ?view=source,将显示端点的配置信息(前提是用户已登录且其角色拥有访问权限):

WordPress 编辑器中的配置
以下是编辑器正文中的输入项:
| 输入项 | 说明 |
|---|---|
| 标题 | 自定义端点的标题 |
| Schema 配置 | 从下拉菜单中选择应用于自定义端点的 schema 配置,或选择以下选项之一:
|
| 选项 | 自定义端点行为的配置:
|
以下是文档设置中的输入项:
| 输入项 | 说明 |
|---|---|
| 固定链接 | 自定义端点将在其下提供访问的端点 URL |
| 分类 | 可对自定义端点进行分类。 例如: mobile、app 等 |
| Excerpt | 为自定义端点提供描述。 此输入项在模块 "Excerpt as Description" 已启用时可用 |
| 页面属性 | 选择父自定义端点。 此输入项在模块 "API Hierarchy" 已启用时可用 |