forked from baskbuddy/zhangshun
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
2.3 KiB
53 lines
2.3 KiB
package com.mydreamjob.controller;
|
|
|
|
import com.mydreamjob.common.api.ApiResponse;
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* 应用信息控制器
|
|
*/
|
|
@Tag(name = "系统", description = "健康检查、应用信息")
|
|
@RestController
|
|
@RequiredArgsConstructor
|
|
@RequestMapping
|
|
public class SystemController {
|
|
|
|
/** R01-A6:身份只来自安全上下文,不接受请求参数传入的 userId。 */
|
|
private final com.mydreamjob.security.CurrentUserAccessor currentUserAccessor;
|
|
/** R01-A6:requestId 只来自过滤器规范化后的唯一产出点。 */
|
|
private final com.mydreamjob.common.logging.RequestIdAccessor requestIdAccessor;
|
|
|
|
@Operation(summary = "应用健康检查", description = "返回应用及依赖服务状态")
|
|
@GetMapping("/health")
|
|
public ResponseEntity<ApiResponse<Map<String, Object>>> health(HttpServletRequest request) {
|
|
Map<String, Object> details = Map.of(
|
|
"status", "UP",
|
|
"application", "mydreamjob-server",
|
|
"version", "0.0.1-SNAPSHOT"
|
|
);
|
|
return ResponseEntity.ok(ApiResponse.ok(details, requestIdAccessor.get(request)));
|
|
}
|
|
|
|
@Operation(summary = "应用信息", description = "返回应用版本、运行时信息")
|
|
@GetMapping("/info")
|
|
public ResponseEntity<ApiResponse<Map<String, Object>>> info(HttpServletRequest request) {
|
|
Map<String, Object> info = Map.of(
|
|
"application", "mydreamjob-server",
|
|
"version", "0.0.1-SNAPSHOT",
|
|
"javaVersion", System.getProperty("java.version"),
|
|
"uptimeSeconds", (System.currentTimeMillis() - java.lang.management.ManagementFactory.getRuntimeMXBean().getStartTime()) / 1000,
|
|
"springProfile", System.getProperty("spring.profiles.active", "dev")
|
|
);
|
|
return ResponseEntity.ok(ApiResponse.ok(info, requestIdAccessor.get(request)));
|
|
}
|
|
|
|
}
|
|
|