跳至内容

通用 API 测试

有效的 API 测试是成功集成 Equinix 服务的关键组成部分。本指南提供最佳实践、工具和方法,以确保您的 API 实现稳健可靠。

API 测试入门

本节将指导您如何设置用于测试 Equinix API 的环境。

搭建测试环境

验证: 所有 Equinix API 均使用 OAuth2 进行安全保护。在进行任何 API 调用之前,您必须获取访问令牌。请参阅我们的API 身份验证指南,了解如何获取您的 client_idclient_secret 以及如何使用它们生成令牌的详细说明。

测试数据: 某些 API 调用可能需要现有资源(例如组织 ID 或特定端口)。您可能需要先通过 Equinix 门户或 API 创建这些资源。请参阅特定 API 的文档,了解测试用例所需的数据。

角色和权限: 您的 API 凭证与用户帐户关联,并继承其权限。请确保该用户帐户拥有执行您要测试的操作所需的角色和权限。例如,要创建 Fabric 连接,您可能需要“连接管理器”权限。这些权限因产品而异,可在 Equinix 客户门户中进行管理。

常用输入: 在开始测试之前,请收集以下常见输入数据:

  • API 端点 URL: 您正在测试的服务的基本 URL(例如,https://api.equinix.com/fabric/v4)。
  • **身份验证令牌:**有效的 OAuth2 令牌。
  • 资源标识符: 您将与之交互的任何现有资源的 UUID(例如,port_uuidorganization_id)。
  • 请求正文有效载荷: POST 或 PUT 请求的 JSON 有效载荷,按照 API 规范进行结构化。

测试环境

Equinix为您的 API 集成提供生产环境:

EnvironmentPurposeBase URL
ProductionLive environmenthttps://api.equinix.com

要使用此环境,您需要在客户门户中注册应用程序并生成客户端凭据

推荐的测试工具

我们推荐使用以下工具来测试 Equinix API:

  • Postman:创建和共享 API 集合,用于手动和自动化测试
  • cURL:用于快速 API 交互的命令行工具
  • Jest/Mocha:用于自动化测试的 JavaScript 测试框架
  • Python Requests:用于基于 Python 的测试的简单 HTTP 库

测试工作流程

验证身份验证

# Short runnable authentication test using requests
import requests

auth_url = "https://api.equinix.com/oauth2/v1/token"
auth_payload = {
"grant_type": "client_credentials",
"client_id": "<client_id>",
"client_secret": "<client_secret>"
}
response = requests.post(auth_url, data=auth_payload)
data = response.json()

print("Status code:", response.status_code)
print("Access token:", data.get("access_token"))
print("Expires in:", data.get("token_timeout"))

创建涵盖完整用户旅程的全面测试场景:

  • 提供一项新服务
  • 配置服务参数
  • 查询服务状态
  • 更新服务配置
  • 停止提供服务
import requests
import json

# Setup authentication
auth_url = "https://api.equinix.com/oauth2/v1/token"
auth_payload = {
"grant_type": "client_credentials",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
}

auth_response = requests.post(auth_url, data=auth_payload)
token = auth_response.json()["access_token"]

# Test creating a connection
base_url = "https://api.equinix.com/fabric/v4"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}

# Create connection payload
connection_payload = {
"type": "EVPL_VC",
"name": "My-Layer2-Connection-3",
"bandwidth": 1000,
"redundancy": {
"priority": "PRIMARY"
},
"aSide": {
"accessPoint": {
"type": "COLO",
"port": {
"uuid": "a8ba52de-faae-43b5-b0b1-6904d37ee063"
},
"linkProtocol": {
"type": "DOT1Q",
"vlanTag": 1001
}
}
},
"order": {
"purchaseOrderNumber": "po1234"
},
"zSide": {
"accessPoint": {
"type": "COLO",
"port": {
"uuid": "a00cef6f-8e35-4794-9ff9-665e084e4e6d"
},
"linkProtocol": {
"type": "DOT1Q",
"vlanTag": 1001
}
}
},
"notifications": [
{
"type": "ALL",
"emails": [
"test@test.com"
]
}
]
}

# Test creating a connection
create_response = requests.post(
f"{base_url}/connections",
headers=headers,
data=json.dumps(connection_payload)
)

# Verify response
assert create_response.status_code == 201, f"Failed to create connection: {create_response.text}"
connection_id = create_response.json()["uuid"]

# Test retrieving connection details
get_response = requests.get(
f"{base_url}/connections/{connection_id}",
headers=headers
)

assert get_response.status_code == 200, f"Failed to retrieve connection: {get_response.text}"

测试错误处理

请验证您的应用程序是否正确处理 API 错误:

  • 使用无效参数进行测试
  • 使用错误的身份验证进行测试
  • 使用过期令牌进行测试
  • 验证错误响应格式

API产品测试

Equinix 为各个产品 API 提供专门的测试指南:

每份指南都以这些通用测试原则为基础,同时提供特定产品的示例和最佳实践。

需要帮助吗?

如果您在测试 Equinix API 时遇到问题:

此页面有帮助吗?