TellmeRevitPluging/Controllers/HealthController.cs
2025-12-09 17:43:30 +08:00

62 lines
1.7 KiB
C#

using System;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using RevitHttpControl.Models;
using RevitHttpControl.Services;
namespace RevitHttpControl.Controllers
{
/// <summary>
/// 健康检查控制器
/// </summary>
[RoutePrefix("api")]
public class HealthController : ApiController
{
/// <summary>
/// 获取服务健康状态
/// </summary>
/// <returns>健康检查响应</returns>
[HttpGet]
[Route("health")]
public HttpResponseMessage GetHealth()
{
try
{
var healthData = new HealthData
{
ServerStatus = "running",
RevitVersion = "2017",
CurrentDocument = RevitService.GetCurrentDocumentInfo()
};
var response = new ApiResponse<HealthData>
{
Success = true,
Code = 200,
Message = "服务正常",
Data = healthData
};
return Request.CreateResponse(HttpStatusCode.OK, response);
}
catch (Exception ex)
{
var errorResponse = new ApiResponse<object>
{
Success = false,
Code = 500,
Message = "服务器内部错误",
Data = new
{
error = "INTERNAL_ERROR",
errorDescription = ex.Message
}
};
return Request.CreateResponse(HttpStatusCode.InternalServerError, errorResponse);
}
}
}
}