自定义端点
自定义端点自定义端点

自定义端点

Included in the “Power Extensions” bundle

创建自定义 schema,为不同用户设置自定义访问规则,每个 schema 均通过专属端点对外提供。

说明

GraphQL 服务器通常仅公开单个端点用于数据的获取与提交。

除了支持单一端点之外,Gato GraphQL 还允许创建自定义端点,为不同目标提供差异化的 schema 配置,以满足以下各类需求:

  • 特定客户端或用户
  • 拥有更多功能访问权限的用户群组(例如 PRO 用户)
  • 多个应用程序之一,如移动端应用或网站
  • 第三方 API
  • 其他情况

自定义端点是一种自定义文章类型(Custom Post Type),其固定链接即为端点地址。标题为 "My endpoint"、别名为 my-endpoint 的端点可通过 /graphql/my-endpoint/ 访问。

自定义端点编辑器

客户端

每个自定义端点都有其专属的客户端集合:

GraphiQL 客户端:可通过端点 + ?view=graphiql 访问(例如:/graphql/my-endpoint/?view=graphiql)。

需启用模块 GraphiQL for Custom Endpoints

自定义端点的 GraphiQL 客户端

交互式 schema 客户端:可通过端点 + ?view=schema 访问(例如:/graphql/my-endpoint/?view=schema)。

需启用模块 Interactive Schema for Custom Endpoints

自定义端点的交互式 schema

创建自定义端点

点击菜单中的「自定义端点」链接,将显示所有已创建的自定义端点列表:

管理后台中的自定义端点
管理后台中的自定义端点

自定义端点是一种自定义文章类型(CPT)。要创建新的自定义端点,点击「添加新 GraphQL 端点」按钮,WordPress 编辑器将随之打开:

创建新的自定义端点

自定义端点准备就绪后,发布即可,其固定链接将成为端点 URL。端点(以及源码和客户端)的链接将显示在「自定义端点概览」侧边栏面板中:

自定义端点概览

在固定链接末尾追加 ?view=source,将显示端点的配置信息(前提是用户已登录且其用户角色具有访问权限):

自定义端点源码

默认情况下,自定义端点的路径为 /graphql/,该值可在设置中进行配置:

自定义端点设置
自定义端点设置

Schema 配置

schema 所包含的元素以及用户对其的访问权限,均在 schema 配置中定义。

因此,我们需要创建一个 schema 配置,然后从下拉菜单中选择它:

选择 schema 配置

按分类整理自定义端点

在侧边栏面板「端点分类」中,可以添加分类以便管理自定义端点:

编辑自定义端点时的端点分类

例如,可以按客户端、应用程序或其他所需信息创建分类来管理端点:

端点分类列表

在自定义端点列表中,可以查看各端点所属的分类,点击任意分类链接或使用顶部的筛选器,将仅显示该分类下的所有条目:

带分类的自定义端点列表

按分类筛选自定义端点

私有端点

将自定义端点的状态设置为 private 后,该端点将仅限管理员用户访问。这可防止数据被意外共享给不应拥有访问权限的用户。

例如,可以创建私有自定义端点来协助管理应用程序,例如获取数据以生成含有指标的报告。

私有自定义端点

密码保护端点

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

密码保护的自定义端点

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

密码保护的自定义端点:首次访问

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

密码保护的自定义端点:授权后