Files
Edu/services/content
SpecialX beedbaf686 docs: 同步 P6 工作日志、runbook 与服务 README
- known-issues.md: 追加 9 条 P6 工作经验日志,更新 arch-scan 经验
- post-p6-followup.md: 新增 P6 后续工作手册 runbook
- iam/core-edu/content/msg README: 补充健康检查端点说明
2026-07-08 12:53:05 +08:00
..

content 内容资源服务

版本0.1P4 骨架) 端口3005

职责

内容资源限界上下文,管理 Textbook、Chapter、KnowledgePoint 聚合。 支持多存储MySQL教材/章节/知识点写模型)+ Neo4j知识图谱前置依赖+ Elasticsearch题库全文检索P4 后续补充)。

技术栈

  • NestJS 10.x + TypeScript 5.6ESM
  • Drizzle ORMMySQL
  • neo4j-driver知识图谱
  • Zod运行时校验
  • pino日志+ prom-client指标+ OpenTelemetry追踪

开发

pnpm install
pnpm dev        # 端口 3005
pnpm build
pnpm typecheck
pnpm lint
pnpm test

环境变量

变量 说明
PORT 服务端口(默认 3005
DATABASE_URL MySQL 连接串
NEO4J_URL Neo4j Bolt 连接 URL
NEO4J_PASSWORD Neo4j 密码
ES_URL Elasticsearch 地址
JWT_SECRET JWT 密钥
OTEL_EXPORTER_OTLP_ENDPOINT OpenTelemetry OTLP 端点(可选)

模块结构

src/
├─ config/          # env、database(MySQL)、neo4j
├─ shared/
│  ├─ errors/       # ApplicationError + GlobalErrorFilterCONTENT_* 前缀)
│  └─ observability/# logger、metrics、tracer
├─ textbooks/       # 教材/章节/知识点 + 知识图谱
├─ app.module.ts
└─ main.ts

关键端点

  • POST /textbooks 创建教材
  • GET /textbooks 教材列表
  • GET /textbooks/:id 教材详情
  • TextbooksService.createKnowledgeGraph 在 Neo4j 构建知识点前置依赖
  • TextbooksService.getPrerequisites 查询知识点前置链路

健康检查

端点 用途 鉴权
GET /healthz 存活探针liveness仅返回进程状态不检查依赖
GET /readyz 就绪探针readiness检查 DB 连接,失败返回 503

实现见 src/shared/health/health.controller.ts5 个 NestJS 服务iam/core-edu/content/msg/classes一致。

对外契约

gRPC 服务 TextbookServiceKnowledgeGraphService 定义见 packages/shared-proto/proto/content.proto