62 lines
1.7 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|