コンテンツにスキップ

Deep Ping

メソッド

REST メソッドを採用しています。

HTTP メソッド

GET: データベース接続のヘルスチェック

命名規則

クエリパラメータとノードの命名を統一し、可読性を向上させるため、リクエスト時の URI と JSON 内のノードには snake_case を使用します。

リクエストとレスポンス

ヘッダー

メタ情報はレスポンスボディではなく、HTTP ヘッダーに設定されます。

リクエストヘッダー

リクエストヘッダーは不要です。

レスポンスヘッダー

  • Content-Type: application/json

Deep Ping

URI

/api/v1/ping/deep

レスポンス(200 OK)

レスポンスは JSON です。

{
  "message": "deep ping"
}

認証要件

このエンドポイントは認証を要求しません。

例外処理

例外時のステータスコードは次のとおりです。

説明 ステータスコード ステータス名
サーバ内部エラー 500 Internal Server Error

処理フロー

シーケンス図

sequenceDiagram
    participant Client
    participant API as Hono Router
    participant Service as Ping Service
    participant Repo as Ping Repository
    participant DB as PostgreSQL Database

    Client->>API: GET /api/v1/ping/deep
    API->>Service: pingDeep()
    Service->>Repo: pingDeep()
    Repo->>DB: SELECT 1

    alt Database Connected
        DB-->>Repo: Query result
        Repo-->>Service: "deep ping"
        Service-->>API: "deep ping"
        API-->>Client: 200 OK { "message": "deep ping" }
    else Database Error
        DB-->>Repo: Connection error
        Repo-->>Service: throw Error
        Service-->>API: throw Error
        API-->>Client: 500 Internal Server Error
    end

Routes 層

ルーティングはここで行います。ハンドラは ping サービスに委譲し、結果を JSON で返します。

ソース: apps/admin/src/routes/v1/ping.ts

Services 層

ビジネスロジックの説明です。リポジトリを呼び出してデータベース接続を確認し、結果メッセージを返します。

ソース: apps/admin/src/services/ping.ts

Repositories 層

データベースへのアクセスです。軽量の SELECT 1 で接続を確認します。成功時は "deep ping" を返し、失敗時はエラーをログに記録して例外を送出します。

ソース: apps/admin/src/repositories/ping.ts

セキュリティ

  • ヘルスチェック用のため認証は不要です
  • レスポンスに機密情報は含まれません
  • データベースエラーはコンテキスト付きでログに記録されますが、クライアントには露出しません
  • レディネスプローブやデプロイ検証に適しています