1. 查明空库真正 Bootstrap Chain:明确以 ry_20250522.sql + quartz.sql + 000_phase05_exact_schema.sql 为前置基线; 2. 纠偏 API Inventory 统计指标:确立 107 个端点、0 重复,升级为读写分离物理表调用链 (100% 源码追踪); 3. 明确四类 API 边界:自研业务端点 107、平台端点 95、甲方端点 0、第三方端点 9、纯模拟端点 1; 4. 升级 Client API 状态模型:引入连通性、真实数据与可用性三维矩阵,实证 DMS 0 资源现状,将远程开门更正为 SECURITY_PROHIBITED; 5. 输出纯净演示数据库设计规约草案 (CLEAN_DEMO_DATABASE_SPEC.md)。
8.5 KiB
8.5 KiB
05 - 甲方与外部接口状态清单 (Client API Status)
最高原则:严禁将模拟桩 (Mock) 误报为真实在线 (REAL_LIVE)! 任何标记为
REAL_LIVE的接口,必须严格具备真实联调证据来源(EVIDENCE_SOURCE)与可查验的实时返回结果(LIVE_RESULT)。 安全红线:当前阶段严禁发起任何未经授权的破坏性写操作 (Mutation);安全政策禁止集成的接口明确标记为SECURITY_PROHIBITED。
1. 外部接口状态模型与三维判定准则
为了杜绝“接口 HTTP 200”与“演示业务可用”之间的混淆,外部接口引入三维判定模型:
-
真实网络连通性 (CONNECTIVITY_STATUS):
REAL_LIVE:外部真实网络畅通、凭据认证通过、成功发起 HTTP 请求并收到 200 响应;CLIENT_REAL_AUTH_BLOCKED:外部网络可达,但因密钥错误或缺少角色权限被 401/403 阻断;CLIENT_REAL_UNREACHABLE:外部网络不通、连接超时、域名未解析或接口已下线;NOT_YET_TESTED:代码已编写适配器,但受安全红线或硬件限制尚未发起真实外网调用;MOCK_SIMULATION:无外部真实服务支撑,完全由本地假数据桩或单元测试套件驱动;SECURITY_PROHIBITED/OUT_OF_SCOPE:系统安全政策明确禁止实现与调用的高危接口(如远程开门)。
-
真实数据状态 (REAL_DATA_STATUS):
REAL_DATA_AVAILABLE:真实接口返回了非空的物理硬件或业务资源数据;EMPTY_DATA:真实接口返回成功,但目标列表数据量为 0(如 0 栋楼、0 间房、0 把锁);NOT_APPLICABLE:接口属于写操作、认证或禁止调用,不适用数据查询。
-
演示可用性 (DEMO_USABILITY):
LIVE_API_BUT_NO_REAL_RESOURCE_DATA:接口虽在线但因厂商测试环境缺少物理资源,不可用于全真实数据演示;MOCK_SIMULATION_REQUIRED:端到端演示必须使用受控 Mock 桩模拟硬件反馈;PROHIBITED_FROM_DEMO:绝不允许在演示中调用。
2. 外部接口状态与证据矩阵表 (External API Matrix)
| 序号 | 外部接口名称 | 协议与端点 (API ENDPOINT) | 提供方 (PROVIDER) | 网络连通性 (CONNECTIVITY) | 真实数据状态 (DATA_STATUS) | 演示可用性 (DEMO_USABILITY) | 最近验证时间 (LAST_VERIFIED_AT) | 验证方式 (METHOD) | 证据来源 (EVIDENCE_SOURCE) | 实时返回特征 (LIVE_RESULT) | 破坏性风险说明 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 01 | DMS 第三方应用凭据获取 | POST /public/rest/third-party-app/token/get |
DMS 厂商平台 | REAL_LIVE |
NOT_APPLICABLE |
LIVE_AUTH_READY |
2026-09-17 | 真实外网 HTTP POST 携带有效 AppId/Secret 探测 | docs/reports/integrated-acceptance/FINAL_PHASE1_20260917_101044/dms-final-status.md |
HTTP 200,取得有效 Token,expires_in: 7200,Cookie Token 认证机制验证通过 |
只读认证,无破坏性风险 |
| 02 | DMS 建筑空间列表查询 | POST /rest/place/building/list |
DMS 厂商平台 | REAL_LIVE |
EMPTY_DATA( BUILDING=0) |
LIVE_API_BUT_NO_REAL_RESOURCE_DATA |
2026-09-17 | 真实外网携带 Cookie Token 发起 POST 查询 | docs/reports/integrated-acceptance/FINAL_PHASE1_20260917_101044/dms-final-status.md |
HTTP 200,外层 JSON 符合契约,列表数据量为 0 (BUILDING=0) |
只读查询,安全 |
| 03 | DMS 楼层空间列表查询 | POST /rest/place/floor/list |
DMS 厂商平台 | REAL_LIVE |
EMPTY_DATA( FLOOR=0) |
LIVE_API_BUT_NO_REAL_RESOURCE_DATA |
2026-09-17 | 真实外网携带 Cookie Token 发起 POST 查询 | docs/reports/integrated-acceptance/FINAL_PHASE1_20260917_101044/dms-final-status.md |
HTTP 200,外层 JSON 符合契约,列表数据量为 0 (FLOOR=0) |
只读查询,安全 |
| 04 | DMS 房间空间列表查询 | POST /rest/place/room/list |
DMS 厂商平台 | REAL_LIVE |
EMPTY_DATA( ROOM=0) |
LIVE_API_BUT_NO_REAL_RESOURCE_DATA |
2026-09-17 | 真实外网携带 Cookie Token 发起 POST 查询 | docs/reports/integrated-acceptance/FINAL_PHASE1_20260917_101044/dms-final-status.md |
HTTP 200,外层 JSON 符合契约,列表数据量为 0 (ROOM=0) |
只读查询,安全 |
| 05 | DMS 智能门锁设备列表查询 | POST /rest/doorlock/list |
DMS 厂商平台 | REAL_LIVE |
EMPTY_DATA( LOCK=0) |
LIVE_API_BUT_NO_REAL_RESOURCE_DATA |
2026-09-17 | 真实外网携带 Cookie Token 发起 POST 查询 | docs/reports/integrated-acceptance/FINAL_PHASE1_20260917_101044/dms-final-status.md |
HTTP 200,外层 JSON 符合契约,挂载门锁数为 0 (LOCK=0) |
只读查询,安全 |
| 06 | DMS 在线密码下发 (Mutation) | POST /rest/doorlock/online-password-key/create |
DMS 厂商平台 | NOT_YET_TESTED(本地单测为 MOCK_SIMULATION) |
NOT_APPLICABLE |
MOCK_SIMULATION_REQUIRED |
2026-09-17 (Mock) | 本地 MockServer 单元契约测试 (MockDmsServer.java) |
RuoYi-Vue/ruoyi-train/src/test/java/com/ruoyi/train/integration/dms/client/DmsPasswordAdapterTest.java |
真实环境因无指定房间与锁具,禁止发起调用 (REAL_DMS_MUTATION_COUNT = 0);Mock 环境返回模拟 operationId |
写操作:严禁向未知门锁发起下发,待划拨测试硬件后联调 |
| 07 | DMS 在线密码撤销 (Mutation) | POST /rest/doorlock/online-password-key/delete |
DMS 厂商平台 | NOT_YET_TESTED(本地单测为 MOCK_SIMULATION) |
NOT_APPLICABLE |
MOCK_SIMULATION_REQUIRED |
2026-09-17 (Mock) | 本地 MockServer 单元契约测试 | RuoYi-Vue/ruoyi-train/src/test/java/com/ruoyi/train/integration/dms/client/DmsPasswordAdapterTest.java |
真实环境未调用;Mock 环境成功模拟撤销响应 | 写操作:严禁向未知设备发起撤销 |
| 08 | DMS 异步操作状态轮询 | POST /rest/doorlock/operation/status |
DMS 厂商平台 | NOT_YET_TESTED(本地单测为 MOCK_SIMULATION) |
NOT_APPLICABLE |
MOCK_SIMULATION_REQUIRED |
2026-09-17 (Mock) | 本地 MockServer 轮询测试 (DmsOperationStatusAdapterTest.java) |
RuoYi-Vue/ruoyi-train/src/test/java/com/ruoyi/train/integration/dms/client/DmsOperationStatusAdapterTest.java |
真实环境无有效 operationId 供轮询;Mock 仿真状态机轮询成功 | 只读轮询,安全 |
| 09 | DMS 远程开门 (Remote Unlock) | 门锁远程触发开门接口 | DMS 厂商平台 | SECURITY_PROHIBITED( OUT_OF_SCOPE) |
NOT_APPLICABLE |
PROHIBITED_FROM_DEMO |
2026-09-17 | 架构与安全红线基线审查 | docs/decisions/security/ 与项目安全红线规则 |
历史证据表明系统安全政策严格禁止实现与调用远程开锁,未配置客户端亦未调用(非网络故障不可达,系范围外安全阻断) | 极高危险:绝对禁止集成与调用 |
| 10 | 电子班牌实时数据推送 | 班牌通信端口与协议 | 电子班牌硬件厂商 | MOCK_SIMULATION |
SIMULATED_DATA |
LOCAL_SIMULATION_READY |
2026-09-20 | 本地数据库档案与模拟心跳更新 | TrainElectronicBoardController.java |
现场缺少实际联网电子班牌设备;系统当前在数据库记录心跳时间与班牌档案,通信属于模拟桩 | 无物理设备破坏风险 |
3. 统计汇总与客观边界说明
3.1 外部接口统计指标 (Task 6 对齐)
RAILWAYSYSTEM_CUSTOM_BUSINESS_API_COUNT:107 个(详见 04-API-INVENTORY.md)RUOYI_PLATFORM_API_COUNT:95 个(底座通用管理与监控接口)CLIENT_PROVIDED_API_COUNT:0 个(甲方沈阳房建公寓段自身未提供信息化接口)THIRD_PARTY_API_COUNT:9 个(DMS 门锁平台接口:01~09)MOCK_ONLY_INTERFACE_COUNT:1 个(电子班牌推送接口:10)
3.2 外部接口真实状态分布
- 真实网络连通端点数 (
CLIENT_API_REAL_CONNECTIVITY_COUNT):5 个 (Token, Building, Floor, Room, Lock) - 真实数据非空端点数 (
CLIENT_API_REAL_DATA_NONEMPTY_COUNT):0 个 (当前真实资源数量:BUILDING=0, FLOOR=0, ROOM=0, LOCK=0) - 受控待测写操作端点数 (
CLIENT_API_NOT_YET_TESTED_COUNT):3 个 (密码下发、撤销、操作轮询) - 安全红线禁止端点数 (
CLIENT_API_SECURITY_PROHIBITED_COUNT):1 个 (远程开门) - 纯本地模拟桩端点数 (
CLIENT_API_MOCK_COUNT):1 个 (电子班牌)