APIの設計、ドキュメント作成、デバッグ、モック、テストのためのコラボレーションツールとして、Apidogには高く評価されている機能があります。それは、リクエストの送受信時にデータベース操作をサポートすることです。この機能は、エンドポイントを呼び出す際にリクエストデータを準備したり、レスポンスを受信した際にデータベースにデータを挿入したりする必要があるユーザーにとって非常に便利であり、ユーザーから絶大な支持を得ています。
しかし、多くのユーザーがこの機能を日常的に活用する中で、いくつかの改善点が特定されました。最も頻繁に提起された点の一つは次のとおりです。
データベース接続設定をチーム管理者が設定し、他のチームメンバーが共同で利用できるようにすることはできますか?接続の詳細を全員が再入力するのは本当に面倒です。
この機能の初期設計段階から、データベース設定を共同で利用できるようにするかどうかはすでに検討していました。しかし、データベースのユーザー名やパスワードなどの機密情報をクラウドサーバーに保存することをユーザーに許可することは、慎重な検討を要する問題です。そのため、当時のデータベース接続設定の共同利用が実装されなかった主な理由は、データセキュリティでした。
現在、Apidogは何百万もの開発者にとって主要なAPIコラボレーションおよび管理ツールとなっており、Apidog自体の基盤機能もより強力になりました。そのため、データベース接続設定の共同利用に関するこの最適化要件を再検討し、データセキュリティと開発効率のバランスを取りながら、ユーザーの皆様にご満足いただけるよう努めています。
データベース接続設定をクラウドに保存する
ステップ1:新しいデータベース接続を作成する
Apidogのバージョンが2.6.50以上に更新されたら、「プロジェクト設定 -> データベース接続」に移動し、クリックして新しいデータベース接続を作成します。すべての接続フィールドで、フィールド値を入力するために変数を使用するようガイドされることがわかります。

ステップ2:異なる環境で変数を設定する
環境管理で、異なる環境で使用するデータベース接続の変数を設定します。これにより、これらの変数をデータベース接続設定に適用できます。

ステップ3:変数を使用してデータベース接続を構成する
データベース接続設定ページに戻り、変数形式を使用して手動で変数を入力するか、動的値機能を介してこれらの変数を直接参照できます。ここでは環境変数を使用することをお勧めします。これにより、異なる環境のコンテキストに合わせて設定が自動的に切り替わります。ポート番号を除き、他のすべてのフィールドは変数を使用して入力するのが最適です。

ステップ4:データベース接続を保存して使用する
変数を使用するデータベース接続設定を保存すると、API管理、自動テスト、その他の領域でのデータベース操作で使用できます。

使用時、ローカルに保存されたデータベース接続設定とクラウドに保存されたデータベース接続設定の実際の使用メカニズムは以下の通りです。
ローカル保存設定(変数を使用しない場合) | クラウド保存設定(変数を使用する場合) |
1. エンドポイントリクエストがデータベース操作をトリガーすると、指定されたデータベース設定が読み込まれます。 | 1. エンドポイントリクエストがデータベース操作をトリガーすると、指定されたデータベース設定が読み込まれます。 |
2. システムはローカルファイルから設定の詳細を読み込み、実際の値を直接使用します。 | 2. 設定はクラウドからフェッチされ、変数が含まれています。システムはこれらの変数を名前と優先順位に基づいて解決します。 |
3. これらの値(例:ホスト、ユーザー名、パスワード)を使用して、完全なデータベース接続を構築し、接続を開始します。 | 3. 変数は実際の値に置き換えられ、完全なデータベース接続設定が形成され、接続が開始されます。 |
4. 接続が成功すると、データベース操作で定義されたSQLステートメントが、結果を変数に保存するなどの操作とともに実行されます。 | 4. 接続が成功すると、データベース操作で定義されたSQLステートメントが、結果を変数に保存するなどの操作とともに実行されます。 |
PRO TIP: このデータベース接続設定を使用する必要がある他のプロジェクトメンバーは、以前のようにプロジェクト管理で設定する必要がなくなり、環境管理に移動して対応する変数を見つけ、ローカル値を入力するだけでよくなります。
これらは、クラウドデータベース接続を構成するための詳細な手順です。ローカル値の使用が推奨されており、実際の構成は引き続きローカルに保存されるため、データセキュリティのリスクを心配する必要はありません。変数は単にプロセスをより便利で管理しやすくするだけです。
Apidogは、データベース接続設定に実際の値を直接入力することも引き続きサポートしています。これにより、既存の構成との互換性が確保され、ローカルデータでの作業を好むユーザーもサポートされます。ただし、より良い、より効率的なエクスペリエンスのために、変数に切り替えてクラウドに保存するよう促す明確なリマインダーが表示されます。

クラウドデータベース接続を使用する際の注意事項:
データベース接続設定において、変数を使用する場合、実際にクラウドに保存されるのは変数名です。データベース接続を実行する際には、変数使用規則に従って完全な接続設定が組み立てられ、接続が開始されます。
✅ 推奨されるアクション:
- 変数には「現在の値 (Current Value)」または「Vault変数 (Vault Variable)」を使用します。
- ポート番号は直接入力しても問題ありません。利便性が高く、リスクもありません。
❌ 推奨されないアクション:
- 変数に「初期値 (Initial Value)」を使用すること。
- プレーンテキストと変数を混在させること。これでは、全員がプロジェクト設定で個別に設定する必要があります。
Vault変数を使用してデータベース接続設定を保存する
データベース接続設定には、Vault変数を使用することをお勧めします。これらの変数は外部のシークレット管理サービスからフェッチされ、ローカルマシンに暗号化された形式で保存されます。このアプローチは、安全なデータ保護とクラウドストレージによる効率的なチームコラボレーションという両方の利点を提供します。
ステップ1:Vault変数を構成する
Vaultプロバイダーを設定し、データベース接続資格情報のプレーンテキストをそこに保存します。異なる環境でのデータベース接続設定には、プロバイダーに異なるVaultキーを作成する必要があります。具体的な方法については、ヘルプドキュメントを参照してください。

ステップ2:環境変数を作成する
各環境で、dbHost
などの同じ名前の環境変数を作成します。次に、その環境に適したVault変数を参照するように初期値 (Initial Value)
を設定し、現在の値 (Current Value)
が初期値に従うようにします。

なぜこれを行うのか?
- Vault変数を環境変数でラップします。これにより、後でデータベース接続を構成する際に、環境変数を選択するだけでよくなります。Apidogは現在の環境に基づいて正しい値を自動的に使用します。
- データを初期値として保存することで、すべてのプロジェクトメンバーが手動で再設定することなく使用できるようになり、チームの効率が向上します。
ステップ3:Vault Secretを使用してデータベース接続を設定する
データベース接続を設定する際は、環境管理
で定義した環境変数(例:dbHost
、dbUser
、dbPassword
)を使用します。これらの変数を素早く参照するには、動的値機能を使用します。

ステップ4:データベース接続をテストする
「接続テスト (Test Connection)」をクリックします。テストに使用する環境を選択するよう促されます。
接続で使用される変数(ホスト、ポート、ユーザー名など)がその環境に対して適切に構成されていることを確認してください。確認後、システムは接続をテストします。
- ✅ 成功した場合は、そのまま続行できます。
- ❌ 失敗した場合は、エラーメッセージを確認して具体的なトラブルシューティング手順を実行してください。

ステップ5:エンドポイントリクエストでデータベース操作を使用する
エンドポイントリクエストのPre Processors
またはPost Processors
で、保存されたクラウドデータベース設定を使用してデータベース操作を追加できます。

例:
次のような操作をしたいとします。
- データベースから「Nancy」という名前のペットの
id
を検索する。 - そのIDを使用して、エンドポイントリクエストを通じて詳細情報を取得する。

するとApidogは:
- データベース操作を実行し
- 値(例:
petID
)をフェッチし - それを変数(例:
petId
)として保存し - その変数をエンドポイントリクエストで使用します
上記のようにデータベース設定がクラウドに設定されると:
- 他のチームメンバーは、自分のデータベース操作でそれを再利用できます。
- 各人が手動で設定する必要はありません。
- 時間を節約し、プロジェクト全体で一貫性を確保します。
最終的なポイント
上記の例は、Vault変数を使用してデータベース接続設定を安全に保存および適用する方法を示しています。手順の簡単なまとめは次のとおりです。
- 異なる環境の各データベース設定(例:テスト用の
testDBHost
、本番用のprodDBHost
)に対して、個別のVault変数を作成します。ポートは通常同じであるため、スキップできます。 - すべての環境で同じ名前の環境変数を定義します。各環境で、環境変数の初期値を、対応するVault変数を参照するように設定します。
以下の表は、テスト環境と本番環境の両方でこれらの環境変数を設定する方法を示しています。現在の値を初期値と一致させることができます。
環境 | 環境変数名 | 初期値 | 説明 |
テスト環境 | dbHost | {{vault:testDbHost}} | テスト環境のデータベースアドレスのVault変数を参照 |
dbUsername | {{vault:testDbUsername}} | テスト環境のデータベースユーザー名のVault変数を参照 | |
dbPwd | {{vault:testDbPwd}} | テスト環境のデータベースパスワードのVault変数を参照 | |
dbTable | store | データセキュリティの懸念がないため、直接入力。Vault変数はオプション | |
本番環境 | dbHost | {{vault:prodDbHost}} | 本番環境のデータベースアドレスのVault変数を参照 |
dbUsername | {{vault:prodDbUsername}} | 本番環境のデータベースユーザー名のVault変数を参照 | |
dbPwd | {{vault:prodDbPwd}} | 本番環境のデータベースパスワードのVault変数を参照 | |
dbTable | store | データセキュリティの懸念がないため、直接入力。Vault変数はオプション |