58 lines
1.6 KiB
C#
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);
|
|
}
|
|
} |