一般的なAPIテスト
APIの効果的なテストは、エクイニクスのサービスとの統合を成功させるための重要な要素です。このガイドでは、お客様のAPI実装が堅牢で信頼できるものであることを保証するためのベストプラクティス、ツール、手法をご紹介します。
APIテストの開始
このセクションでは、APIをテストするための環境設定について説明します。
テスト環境のセットアップ
**認証:**エクイニクスのAPIはすべてOAuth2を使用して保護されています。APIを呼び出す前に、アクセストークンを取得する必要があります。client_idとclient_secret`の取得方法とトークンの生成方法については、エクイニクスのAPI認証ガイドを参照してください。
**テストデータ:**APIコールによっては、既存のリソース(組織IDや特定のポート)が必要になる場合があります。これらのリソースは、エクイニクスのポータルまたはAPI経由で作成する必要があります。テストケースに必要なデータについては、各APIのドキュメントを参照してください。
**Roles and Permissions:**API クレデンシャルはユーザーアカウントに関連付けられ、その権限を継承します。ユーザーアカウントが、テストしたいアクションを実行するために必要な役割と権限を持っていることを確認してください。例えば、Fabric 接続を作成するには、"Connection Manager" 権限が必要です。これらは製品によって異なり、エクイニクスカスタマーポータル(ECP)で管理できます。
**共通入力:**テストを開始する前に、以下の共通入力を収集します:
- APIエンドポイントURL: テストするサービスのベースURL(例:
https://api.equinix.com/fabric/v4)。 - 認証トークン: 有効な OAuth2 トークン。
- リソース識別子: 既存のリソースのUUID(例:
port_uuid、organization_id)。 - リクエストボディのペイロード: API 仕様に従って構造化された、POST または PUT リクエストの JSON ペイロード。
テスト環境
エクイニクスは、お客様のAPI統合の本番環境を提供します:
| Environment | Purpose | Base URL |
|---|---|---|
| Production | Live environment | https://api.equinix.com |
この環境を使用するには、カスタマーポータルで アプリの登録とクライアント認証情報の生成 を行う必要があります。
推奨テストツール
エクイニクスの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製品テスト
エクイニクスは、各製品の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
各ガイドは、これらの一般的なテストの原則に基づきながら、製品固有の例やベストプラクティスを提供しています。
お困りですか?
エクイニクスのAPIをテスト中に問題が発生した場合は、次の手順に従ってください:
- API FAQをご覧ください。
- 既知の問題については、API リリースノート を参照してください。
- エクイニクスサポートまでお問い合わせください。