dramaling-app/apps/backend/DramaLing.API/Controllers/HealthController.cs

58 lines
1.6 KiB
C#

using Microsoft.AspNetCore.Mvc;
namespace DramaLing.API.Controllers;
[ApiController]
[Route("api/[controller]")]
public class HealthController : ControllerBase
{
/// <summary>
/// 健康檢查端點
/// </summary>
/// <returns>服務健康狀態</returns>
[HttpGet]
public IActionResult GetHealth()
{
var response = new
{
Status = "Healthy",
Timestamp = DateTime.UtcNow,
Version = "1.0.0",
Service = "Drama Ling API"
};
return Ok(response);
}
/// <summary>
/// 詳細健康檢查
/// </summary>
/// <returns>詳細的系統狀態</returns>
[HttpGet("detailed")]
public IActionResult GetDetailedHealth()
{
var response = new
{
Status = "Healthy",
Timestamp = DateTime.UtcNow,
Version = "1.0.0",
Service = "Drama Ling API",
Environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production",
Uptime = Environment.TickCount64,
Database = "Connected", // TODO: 實際檢查資料庫連線
Cache = "Connected", // TODO: 實際檢查Redis連線
Memory = new
{
WorkingSet = GC.GetTotalMemory(false),
GcCollections = new
{
Gen0 = GC.CollectionCount(0),
Gen1 = GC.CollectionCount(1),
Gen2 = GC.CollectionCount(2)
}
}
};
return Ok(response);
}
}