网关 API
网关 API 提供了使用 DM 系列 Unified Manager 凭证运行 ONTAP REST API 和管理存储对象的优势。从 Unified Manager Web UI 启用 API 网关功能后,这些 API 才可用。
Unified Manager REST API 仅支持针对 Unified Manager 数据源(即 ONTAP 集群)执行的一组所选操作。其他功能仅可通过 ONTAP API 使用。通过网关 API,Unified Manager 可以作为直通接口,以隧道方式传输要针对 ONTAP 集群执行的所有 API 请求,而无需单独登录每个数据中心集群。它作为单一管理点执行,可以在由 Unified Manager 实例管理的 ONTAP 集群之间运行这些 API。API 网关功能使 Unified Manager 成为单个控制平面,可以从其中管理多个 ONTAP 集群,而无需单独登录这些集群。使用网关 API 可以通过运行 ONTAP REST API 操作来保持登录到 Unified Manager 的状态并管理 ONTAP 集群。
网关通过将标头和正文请求保持为与 ONTAP API 中相同的格式来充当代理以便通过隧道传输 API 请求。可以使用您的 Unified Manager 凭证并执行特定操作以便访问和管理 ONTAP 集群,而无需传递单个集群凭证。它继续管理集群认证和集群管理,但会重定向 API 请求以直接在特定集群上运行。API 返回的响应与直接从 ONTAP 执行的各个 ONTAP REST API 返回的响应相同。
HTTP 动词 | 路径(URL) | 描述 |
---|---|---|
GET | /gateways | 此 GET 方法检索由 Unified Manager 管理并且支持 ONTAP REST 调用的所有集群的列表。可以验证集群详细信息,并选择基于集群 UUID 或通用唯一标识符(UUID)运行其他方法。 |
GET POST DELETE PATCH OPTIONS(在 Swagger 上不适用) HEAD(在 Swagger 上不适用) | /gateways/{uuid}/{path} | 这是一个单点代理 API,支持所有 ONTAP REST API 的 POST、DELETE、PATCH 操作和 GET。只要 ONTAP 支持,该 API 不受任何限制。无法禁用隧道或代理功能。 OPTIONS 方法返回 ONTAP REST API 支持的所有操作。例如,如果 ONTAP API 仅支持 GET 操作,则使用此网关 API 运行 OPTIONS 方法将返回 GET 作为响应。此方法在 Swagger 上不受支持,但可以在其他 API 工具上执行。 OPTIONS 方法确定资源是否可用。此操作可用于查看 HTTP 响应标头中有关资源的元数据。此方法在 Swagger 上不受支持,但可以在其他 API 工具上执行。 注 {uuid} 的值必须替换为要在其上执行 REST 操作的集群 UUID。{path} 必须替换为 ONTAP REST URL。必须从路径中删除 |
了解 API 网关隧道
使用网关 API 可以通过 Unified Manager 管理 ONTAP 对象。Unified Manager 管理集群和认证详细信息,并将请求重定向到 ONTAP REST 端点。Gateway API 使用 API 网关基础 URL 来转换标头和响应正文中的 URL 和“超媒体作为应用程序状态的引擎”(HATEOAS)。Gateway API 充当代理基础 URL,您需要将 ONTAP REST URL 附加到该 URL 并执行所需的 ONTAP REST 端点。
在此示例中,网关 API(代理基础 URL)为:/gateways/{uuid}/
采取的 ONTAP API 是:/storage/volumes。需要将 ONTAP API REST URL 添加为 path 参数的值。
附加的 URL 为:/gateways/{uuid}/storage/volumes
在运行 GET 操作时,生成的 URL 如下:GEThttps://<hostname>/api/gateways/<cluster_UUID>/storage/volumes
在附加的 URL 中将会删除 ONTAP REST URL 的 /api 标记,并会保留网关 API 的该标记。
示例 cURL 命令
curl -X GET "https://<hostname>/api/gateways/1cd8a442-86d1-11e0-ae1c-9876567890123/storage/volumes" -H "accept: application/hal+json" -H "Authorization: Basic <Base64EncodedCredentials>"
此 API 返回该集群中存储卷的列表。响应格式与从 ONTAP 运行相同 API 时收到的格式相同。返回的状态代码是 ONTAP REST 状态代码。
设置 API 范围
所有 API 均在集群范围内设置了上下文。基于存储虚拟机运行的 API 也以集群为范围,也就是说,API 操作是在受管集群内的特定存储虚拟机上执行的。运行 /gateways/{uuid}/{path} API 时,请确保输入要运行该操作的集群 UUID(Unified Manager 数据源 UUID)。要将上下文设置为该集群中的特定存储虚拟机,请输入存储虚拟机键值作为 X-Dot-SVM-UUID 参数或输入存储虚拟机名称作为 X-Dot-SVM-Name 参数。参数将作为筛选条件添加到字符串标题中,而操作会在该集群内的该存储虚拟机的范围内运行。
示例 cURL 命令
curl -X GET "https://<hostname>/api/gateways/e4f33f90-f75f-11e8-9ed9-00a098e3215f/storage/volume" -H "accept: application/hal+json" -H "X-Dot-SVM-UUID: d9c33ec0-5b61-11e9-8760-00a098e3215f"
-H "Authorization: Basic <Base64EncodedCredentials>"
有关使用 ONTAP REST API 的更多信息,请参阅《ONTAP REST API 开发者指南》。