跳到主要内容

API 总览

disaster-server 是对外 API 入口。它通过 Hertz 提供 HTTP 服务,支持认证、REST API、Watch API、OpenAPI 和统计接口。

基础路由

  • GET /healthz
  • GET /readyz
  • POST /login
  • POST /refresh_token

业务接口默认挂在 /apis 下。部分系统接口也提供 /api 别名。

路由前缀规则

很多资源使用 CRD GroupVersion 动态构造路径,例如:

  • /apis/disasterinstances.testudo.softcdata.com/v1/instances
  • /apis/disastergroups.testudo.softcdata.com/v1/groups
  • /apis/disasterdrills.testudo.softcdata.com/v1/drills
  • /apis/cluster.testudo.softcdata.com/v1/clusters
  • /apis/storage.testudo.softcdata.com/v1/storages
  • /apis/backuprestorestatistics.testudo.softcdata.com/v1/backups

响应语义

Server 应返回稳定的响应 envelope、机器可读错误码和人类可读 message。对于状态类接口,应尽量返回 reasonmessage,即使为空,也方便前端统一处理。

Watch API

Watch API 用于控制台实时订阅状态变化,路径通常包含 /watch/...。它会把 Kubernetes watch 转换为前端可消费的事件流。

OpenAPI

项目内置 Swagger / OpenAPI 文档。Server 配置 swagger.enabled=true 时,会注册:

  • GET /swagger/
  • GET /openapi.yaml
  • GET /openapi.json

OpenAPI 契约源文件位于 disaster-server/openspec/specs/disaster-server-openapi.yaml。详细启用、导出和维护规则见 Swagger / OpenAPI 文档