feat(M01-A): 建立后端API基础骨架

This commit is contained in:
Codex
2026-06-16 20:37:55 +08:00
parent eb259ce2a4
commit 98b66d22f2
22 changed files with 437 additions and 19 deletions
+40
View File
@@ -0,0 +1,40 @@
import type { FastifyInstance } from 'fastify';
import type { AppConfig } from '../config.js';
interface HealthPayload {
ok: true;
service: 'qipai-api';
version: string;
traceId: string;
}
interface ReadyPayload extends HealthPayload {
checks: {
mysqlConfigured: boolean;
mqttConfigured: boolean;
};
}
export async function registerHealthRoutes(app: FastifyInstance, config: AppConfig): Promise<void> {
const health = async (request: { traceId: string }): Promise<HealthPayload> => ({
ok: true,
service: 'qipai-api',
version: config.version,
traceId: request.traceId
});
const ready = async (request: { traceId: string }): Promise<ReadyPayload> => ({
...(await health(request)),
checks: {
mysqlConfigured: config.mysql.passwordConfigured,
mqttConfigured: config.mqtt.usernameConfigured && config.mqtt.passwordConfigured
}
});
app.get('/app-api/health', health);
app.get('/admin-api/health', health);
app.get('/app-api/ready', ready);
app.get('/admin-api/ready', ready);
app.get('/app-api/version', health);
app.get('/admin-api/version', health);
}