你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

添加合成 GraphQL API 并设置字段解析程序

适用于:所有 API 管理层级

在 API 管理 中,可以在以下两个模型之一中添加 GraphQL API:直通到现有 GraphQL 终结点,或导入 GraphQL 架构并使用自定义字段解析程序创建合成 GraphQL API。 有关详细信息,请参阅 GraphQL 概述

在本文中,你将:

  • 将 GraphQL 架构导入 API 管理实例
  • 使用现有的 HTTP 终结点为 GraphQL 查询设置解析程序
  • 测试 GraphQL API

若要将现有 GraphQL 终结点公开为 API,请参阅导入 GraphQL API

先决条件

转到你的 API 管理实例

  1. 在 Azure 门户中,搜索并选择“API 管理服务”。

    选择“API 管理服务”

  2. 在“API 管理”服务页上,选择你的 API 管理实例。

    选择你的 API 管理实例

添加 GraphQL 架构

  1. 在侧面导航菜单中的“API”部分下,选择“API” 。

  2. 在“定义新 API”下,选择“GraphQL”图标 。

    屏幕截图显示如何从 API 列表中选择 GraphQL 图标。

  3. 在对话框中,选择“完整”并填写必填的表单字段。

    用于创建 GraphQL API 的字段的屏幕截图。

    字段 说明
    显示名称 GraphQL API 的显示名称。
    名称 GraphQL API 的原始名称。 键入显示名称时自动填充。
    GraphQL 类型 选择要从 GraphQL 架构文件导出的合成 GraphQL
    回退 GraphQL 终结点 可以选择输入包含 GraphQL API 终结点名称的 URL。 如果未为字段设置自定义解析程序,API 管理会将 GraphQL 查询传递给此终结点。
    说明 添加 API 的说明。
    URL 方案 根据 GraphQL 终结点进行选择。 如果 GraphQL API 包含订阅类型,请选择其中一个包含 WebSocket 方案(WSWSS)的选项。 默认选择:HTTP(S)
    API URL 后缀 添加 URL 后缀以在该 API 管理实例中标识此特定 API。 在该 API 管理实例中,后缀必须唯一。
    基 URL 显示 API 基 URL 的不可编辑字段
    标记 将 GraphQL API 与新标记或现有标记关联。
    产品 将 GraphQL API 与产品关联来发布它。
    对此 API 进行版本控制? 选择向你的 GraphQL API 应用某个版本控制方案。
  4. 选择“创建”。

  5. 创建 API 后,在“设计”选项卡上浏览或修改该架构。

配置解析程序

配置解析程序,以将架构中的字段映射到现有 HTTP 终结点。 此处提供了大致步骤。 如需详细信息,请参阅配置 GraphQL 解析程序

假设你导入了以下基本 GraphQL 架构并想要为 users 查询设置解析程序。

type Query {
    users: [User]
}

type User {
    id: String!
    name: String!
}
  1. 在边侧导航菜单中的“API”部分下,选择“API”> 你的 GraphQL API。

  2. 在“架构”选项卡上,查看(要在其中配置解析程序的)对象类型中字段的架构。

    1. 选择一个字段,然后在左边距中悬停指针。

    2. 选择“+ 添加解析程序

      在门户中添加 GraphQL 解析程序的屏幕截图。

  3. 在“创建解析程序”页上:

    1. 根据需要更新“名称”属性,可选择输入“说明”,并确认或更新“类型”和“字段”选择。
    2. 在“数据源”中,选择“HTTP API”。
  4. 解析程序策略编辑器中,使用适用于方案的子元素更新 <http-data-source> 元素。 例如,以下解析程序通过对现有 HTTP 数据源发出 GET 调用来检索“用户”字段。

        <http-data-source>
            <http-request>
                <set-method>GET</set-method>
                <set-url>https://myapi.contoso.com/users</set-url>
            </http-request>
        </http-data-source>
    

    在门户中配置解析程序策略的屏幕截图。

  5. 选择“创建”。

  6. 要解析架构中其他字段的数据,请重复上述步骤以创建解析程序。

提示

编辑解析程序策略时,选择“运行测试”以检查数据源的输出,可以根据架构进行验证。 如果发生错误,响应将包含故障排除信息。

测试 GraphQL API

  1. 导航到 API 管理实例。

  2. 在侧面导航菜单中的“API”部分下,选择“API” 。

  3. 在“所有 API”下,选择 GraphQL API。

  4. 选择“测试”选项卡以访问“测试”控制台。

  5. 在“标头”下:

    1. 从“名称”下拉菜单中选择标头。
    2. 在“值”字段中输入值。
    3. 选择“+ 添加标头”来添加更多标头。
    4. 使用垃圾桶图标删除标头。
  6. 如果已将产品添加到 GraphQL API,请应用“应用产品范围”下的产品范围。

  7. 在“查询编辑器”下:

    1. 从侧菜单中的列表中选择至少一个字段或子字段。 选择的字段和子字段将显示在查询编辑器中。

    2. 开始在查询编辑器中键入内容来撰写查询。

      屏幕截图显示如何将字段添加到查询编辑器。

  8. 在“查询变量”下,添加变量来重用相同的查询或变更,并传递不同的值。

  9. 选择“发送”。

  10. 查看响应。

    屏幕截图显示如何查看测试性查询响应。

  11. 重复上述步骤以测试不同的有效负载。

  12. 测试完成后,退出测试控制台。

保护 GraphQL API

同时应用现有的身份验证和授权策略GraphQL 验证策略来保护 GraphQL API,以防范特定于 GraphQL 的攻击。

后续步骤