API 开发规则

调用与认证

基础地址使用部署方提供的 HTTPS 地址。业务后端请求头为 Authorization: Bearer ak_pat_<完整令牌>;JSON 使用 UTF-8,SDP、文件、multipart 和 WebSocket 按契约处理。请求超时不代表未执行;写请求不无条件重放。保存状态码、Content-Type、code/errorCode、message、traceId 和服务端实际提供的 retryable;缺字段保持未知。

先调用 /api/v2/third-party/capabilities 确认有效权限,再读取 /api/v2/security/permissions 对应公开权限定义。便捷能力分类不代表通用管理 API 被禁用。准确权限在 api-operations.md 和 OpenAPI x-akstream-permission;还有资源/角色/配置约束时读取任务指南。authenticated 表示需有效身份;内部服务接口不会进入本契约,空权限不是生产安全豁免,* 表示该路由要求超级权限。

普通 API Token 不能读取在线 Swagger;使用离线 OpenAPI。浏览器不保存长期 Token,可由自己的后端转发获准的操作。修改公开 WebUI 时保留 Cookie/CSRF、登录刷新和结构化失败反馈;不能把后端 Token 塞入 WebUI 编译配置。

功能路线

下面的路径均相对于 guides/。先看任务,再查完整方法/路径,不从模块前缀猜请求。

功能与 WebUI 动作 任务指南 关键规则
总览、集群、节点、媒体服务、命令、性能状态 development/local-run.md 配置存在与进程在线分开;节点操作等终态
用户、角色、Token、RTSP 鉴权、审计、授权 development/repository.md、development/api-security.md 限权并处理实时收权;原 Token 仅后端保管
普通通道、分组、激活、流管理、资源迁移、对讲 development/webui.md 查询真实能力;稳定 channelId;停流会影响共享使用
GB28181 注册、目录、点播、回放、PTZ、告警、级联 development/add-module.md SIP 受理与设备应答分开;PTZ 必须停止/超时释放
ONVIF 发现、接入、Profile、PTZ、预置位、图像、事件 development/testing-release.md 先读取设备能力;不要假定全部设备支持
录像计划、手工录像、文件、裁剪合并、磁盘和保留 development/database.md、development/third-party-recording.md 逐项结果;软删/恢复/硬删分开;任务完成再签链接
周期截图、帧预览/下载、智能检索与索引任务 development/webui.md、development/database.md 截图票据绑定通道/当前源/动作;模型与索引能力以现场为准
显示墙、大屏节目、布局和播放状态 development/webui.md 保存节目与启动节目分开;客户端布局不等于服务端运行
RTC 建会、票据、主持治理、协作、观察、外部流 development/first-integration.md、development/api-rtc.md 管理后端与参会 SDK 分开,观察和私发权限不扩大
RTC 持续录制、时间线、合成、导出与档案授权 development/api-rtc-archive.md、sdk/recording.md 公共回放不包含定向私发;查看/播放/下载分别授权
配置中心、ZLM 参数、TLS、日志、后台任务、升级与生命周期 development/local-run.md 按管理权限调用;保存后核对运行生效/重启/回滚状态
直播、录像播放下载和稳定 URL 租约 development/third-party-start.md、development/third-party-live.md、development/api-third-party-contract.md 播放不暗中启动离线通道;续租保留 URL,不能超过绝对寿命
运行状态事件、协议事件与第三方 Webhook development/async.md、operations/outbound-webhook.md 按订阅协议鉴权/去重/补偿;不把 ZLM 入站 Webhook 当业务通知

这张表提供全功能检索路线;精确操作集合由随版 OpenAPI 决定。第三方可实现相同平台业务动作,也需遵守相同账号、权限、授权、节点和设备能力。登录、首次安装和会中设备授权仍采用对应专用流程。

首次安装和重新配置

先读取 GET /api/v2/setup/status。需要安装时,使用部署方在目标实例取得的安装码,在安装请求中发送 X-AK-Setup-Token;这不是 ak_pat_ API Token。随版 OpenAPI 的 x-akstream-availability: installation-only 表示只在安装模式开放,安装完成后一般返回 404。

安装接口覆盖 catalog、文件目录的 roots/browse/directories/validate、database/test、detect/network、detect/nginx、notifications/test、media/build 的 inspect/status/start、preflight 和 complete。精确字段使用 OpenAPI 的 FirstRun 请求模型和 guides/development/local-run.md。先验证配置和预检,再按明确的安装任务提交 complete;不要为普通业务接入把已经安装的实例重置为安装模式。目录创建、媒体构建和最终安装会改变环境,不在普通连通性测试中自动执行。

一个真实直播闭环

业务后端调用 GET /api/v2/third-party/channels?page=1&pageSize=50,取 channelId。离线普通通道在具备 channels.manage 时 POST /api/v2/third-party/channels/{channelId}/start,保存命令标识,查询流到 Online;GB28181 的协议会话流程见国标指南。

再 POST /api/v2/third-party/channels/{channelId}/playback-lease,请求体例子:{"protocols":["http-flv","http-fmp4","hls"],"leaseSeconds":120,"absoluteLifetimeSeconds":43200}。后端只将 sources[].url 交给获准用户。到 renewAfter 用同一 Token 续租,播放器无需更换 URL;到绝对期限或收权后重新走业务授权。停止通道与撤销某个播放租约是不同操作。

401 检查 Token/账号/IP/时效;403 不自动扩大权限;404 核对版本、ID 和可见范围;409 先查状态;429 按 Retry-After 退避。批量动作检查 succeeded/failed 每项。非 2xx 不一定同一 JSON 结构,204 不强制解析 JSON。分页、时间单位、枚举大小写、可空字段和默认值均按 OpenAPI 与指南,时间保留 UTC/时区信息。

完整 Skill 文件目录