ディープ Ping
メソッド
RESTメソッドを採用しています。
HTTPメソッド
GET: 包括的ヘルスチェック(データベース接続テスト付き)
命名規則
クエリパラメータとノードの命名を統一し、可読性を向上させるため、リクエスト時のURIとJSON内のノードにはsnake_caseを使用します。
リクエストとレスポンス
ヘッダー
メタ情報はレスポンスボディではなく、HTTPヘッダーに設定されます。
リクエストヘッダー
AcceptAccept-language
レスポンスヘッダー
Content-Type
包括的ヘルスチェック
URI
レスポンス
レスポンスはJSONです。
レスポンスフィールド
| 名前 | 型 | 説明 |
|---|---|---|
| message | string | データベース接続成功メッセージ |
認証
このエンドポイントは認証不要です。
例外処理
例外処理のステータスコードは以下の通りです。
| 説明 | ステータスコード | ステータス名 |
|---|---|---|
| 内部サーバーエラー | 500 | Internal Server Error |
| データベースが利用不可 | 503 | Service Unavailable |
処理フロー
- テストデータベースクエリを実行
- 接続とレスポンスを検証
- クエリが成功した場合、成功メッセージを返却
- データベースに到達できない場合、エラーを返却
データベースチェック
- 軽量なSELECTクエリを実行
- 接続プールのヘルスを検証
- データベースの応答性をテスト
- 接続エラーをキャッチ
使用例
- Kubernetes readinessプローブ
- デプロイメント検証
- データベースヘルスモニタリング
- 接続問題のトラブルシューティング
ヘルスチェック戦略
浅いチェック (/v1/ping)
- 高速、依存関係なし
- アプリケーションが動作していることを確認
- livenessチェックに適している
- レスポンス時間: < 10ms
深いチェック (/v1/ping/deep)
- 重要な依存関係をテスト
- システム全体のヘルスを確認
- readinessチェックに適している
- レスポンス時間: < 100ms
詳細フローチャート
flowchart TD
Start([GET /ping/deep]) --> TestQuery[テストDBクエリ実行]
TestQuery --> QueryOK{成功?}
QueryOK -->|NG| Err500[500 Internal Error<br/>DB接続失敗]
QueryOK -->|OK| Success[200 OK<br/>DB healthy]