# 一般的なAPIテスト APIの効果的なテストは、エクイニクスのサービスとの統合を成功させるための重要な要素です。このガイドでは、お客様のAPI実装が堅牢で信頼できるものであることを保証するためのベストプラクティス、ツール、手法をご紹介します。 ## APIテストの開始[​](#apiテストの開始 "への直接リンクAPIテストの開始") このセクションでは、APIをテストするための環境設定について説明します。 ## テスト環境のセットアップ[​](#テスト環境のセットアップ "への直接リンクテスト環境のセットアップ") \*\*認証:\*\*エクイニクスのAPIはすべてOAuth2を使用して保護されています。APIを呼び出す前に、アクセストークンを取得する必要があります。client\_id`と`client\_secret\`の取得方法とトークンの生成方法については、エクイニクスの[API認証ガイド](https://docs.equinix.com/ja/equinix-api/api-authentication.md)を参照してください。 \*\*テストデータ:\*\*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` | この環境を使用するには、カスタマーポータルで [アプリの登録とクライアント認証情報の生成](https://docs.equinix.com/ja/equinix-api/api-authentication.md#generate-client-id-and-client-secret) を行う必要があります。 ## 推奨テストツール[​](#推奨テストツール "への直接リンク推奨テストツール") エクイニクスの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_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製品テスト "への直接リンクAPI製品テスト") エクイニクスは、各製品のAPIに固有のテストガイドを提供しています: * [Smarthands API Testing](https://docs.equinix.com/ja/equinix-api/testing/smarthands.md) - Testing the Smarthands remote services API * [Shipment API Testing](https://docs.equinix.com/ja/equinix-api/testing/shipments.md) - Testing the Shipments API for data center deliveries * [Work Visit API Testing](https://docs.equinix.com/ja/equinix-api/testing/workvisits.md) - Testing the Work Visits API for IBX access scheduling * [Cross Connect API Testing](https://docs.equinix.com/ja/equinix-api/testing/crossconnects.md) - Testing the Cross Connect API for physical cable connections * [Trouble Ticket API Testing](https://docs.equinix.com/ja/equinix-api/testing/troubleticket.md) - Testing the Trouble Ticket API for support ticket management 各ガイドは、これらの一般的なテストの原則に基づきながら、製品固有の例やベストプラクティスを提供しています。 ## お困りですか?[​](#お困りですか "への直接リンクお困りですか?") エクイニクスのAPIをテスト中に問題が発生した場合は、次の手順に従ってください: * API [FAQ](https://docs.equinix.com/ja/equinix-api/api-faqs.md)をご覧ください。 * 既知の問題については、[API リリースノート](https://docs.equinix.com/ja/equinix-api/release-notes/fabric-release-notes.md) を参照してください。 * [エクイニクスサポート](https://support.equinix.com)までお問い合わせください。