通用 API 测试
有效的 API 测试是成功集成 Equinix 服务的关键组成部分。本指南提供最佳实践、工具和方法,以确保您的 API 实现稳健可靠。
API 测试入门
本节将指导您如何设置用于测试 Equinix API 的环境。
搭建测试环境
验证:
所有 Equinix API 均使用 OAuth2 进行安全保护。在进行任何 API 调用之前,您必须获取访问令牌。请参阅我们的API 身份验证指南,了解如何获取您的 client_id 和 client_secret 以及如何使用它们生成令牌的详细说明。
测试数据: 某些 API 调用可能需要现有资源(例如组织 ID 或特定端口)。您可能需要先通过 Equinix 门户或 API 创建这些资源。请参阅特定 API 的文档,了解测试用例所需的数据。
角色和权限: 您的 API 凭证与用户帐户关联,并继承其权限。请确保该用户帐户拥有执行您要测试的操作所需的角色和权限。例如,要创建 Fabric 连接,您可能需要“连接管理器”权限。这些权限因产品而异,可在 Equinix 客户门户中进行管理。
常用输入: 在开始测试之前,请收集以下常见输入数据:
- API 端点 URL: 您正在测试的服务的基本 URL(例如,
https://api.equinix.com/fabric/v4)。 - **身份验证令牌:**有效的 OAuth2 令牌。
- 资源标识符: 您将与之交互的任何现有资源的 UUID(例如,
port_uuid、organization_id)。 - 请求正文有效载荷: POST 或 PUT 请求的 JSON 有效载荷,按照 API 规范进行结构化。
测试环境
Equinix为您的 API 集成提供生产环境:
| Environment | Purpose | Base URL |
|---|---|---|
| Production | Live environment | https://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 提供专门的测试指南:
- Smarthands API Testing - Testing the Smarthands remote services API
- Shipment API Testing - Testing the Shipments API for data center deliveries
- Work Visit API Testing - Testing the Work Visits API for IBX access scheduling
- Cross Connect API Testing - Testing the Cross Connect API for physical cable connections
- Trouble Ticket API Testing - Testing the Trouble Ticket API for support ticket management
每份指南都以这些通用测试原则为基础,同时提供特定产品的示例和最佳实践。
需要帮助吗?
如果您在测试 Equinix API 时遇到问题:
- 请查看我们的API常见问题解答
- 请查看API 发行说明了解已知问题。
- 如需帮助,请联系 Equinix 支持