Files
ARR-2.0-0918/.project-docs/50-evidence/topics/2026-09-16-arr-api-live-probe.md

8.8 KiB
Raw Permalink Blame History

ARR 搜索与详情接口首次只读联调

2026-09-16。用户在上一轮明确提出“下一步在 OHIPSB02 隔离只读联调”之后回复“继续”,本轮据此执行。 范围固定为已知测试酒店 OHIPSB02、到店日 2026-09-15、ARR 独立应用现有的两个预订读取接口。 没有启用新的子智能体没有改变应用权限、运行配置、来源适配、Oracle 预订或 Finance/Booking/OSS 数据。

已完成的取数

UTC 07:37:4407:49:09通过实际 Edge REST 完成158个请求全部 HTTP200 且 operation/hotel/data 封装校验通过。 包括搜索/对照/收尾重查17次以及139笔完整详情和2次单独 fetch 试验。没有网络重试或接口错误;两个 ETA 查询 在200载荷中返回零记录警告已计为语义差异没有当作有效空日报。

基线搜索使用直接 JSON 请求体:

{
  "arrivalStartDate": "2026-09-15",
  "arrivalEndDate": "2026-09-15",
  "limit": 100,
  "offset": 0,
  "orderBy": ["ConfirmationNo"],
  "sortOrder": ["Asc"]
}

第二页请求 offset100。两页100+39共139条内部 Reservation ID 无重复所有139笔详情均验证了对应身份、 酒店和到店日。基线状态为100 NoShow、31 Cancelled、5 InHouse、1 Reserved、2 CheckedOut。 这是 API 日期候选集合,不是已经认定的报告最终纳入集合。

详情请求使用重复 query 键传 Reservation/Comments/Traces/DailySummary/RateInfoDetails/Packages/InventoryItems/Shares。 这组参数确实取得备注、Trace、包价及每日费率等块不能用搜索摘要替代整笔详情。

收尾重新获取同样两页139个 ID 与顺序相同139条搜索记录完整 JSON 均未变化;搜索与详情的状态及 lastModifyDateTime 也未发现差异。这支持本次采集稳定,不证明服务提供原子快照或未来永远稳定

必须更新的接口认识

项目 本次观测 接入含义
分页 offset 请求0/limit2返回offset2请求2返回4。limit100的末页只有39条仍返回offset200 本次返回值表现为下一页起点/按请求limit前进不能作为当前页起点或累计实际条数。结束以hasMore及计数/身份共同核对
状态 所有请求枚举与省略状态得到相同完整139个有序ID单独CheckedOut得到准确2条子集 状态过滤可用结果一致仅证明本次查询不证明报表ALL就是所有状态
分房 只传任一true都得到基线首100条/total139成对设置true/false分别得到74已分房、65未分房 两组无交集、并集等于完整基线且每行房号状态吻合。需要单侧筛选时必须显式测试两个值ALL基线省略两者已覆盖二组
ETA时区字符串 +07:00的00:00至23:59:00/23:59:59都返回0warning GEN10001 HTTP200不是语义验收不能提交为空日
ETA本地字符串 无时区2026-09-15T00:00:00至23:59:59及服务返回的空格格式均返回相同12个ID 两种是诊断结果;无时区/空格格式不作为通过严格RFC3339的生产示例。基线90条缺ETA、37条仅日期均未纳入此过滤结果
备注编码 实际GEN备注为comment.type=GENnotificationLocation=RESERVATION 与固定官方示例的RESERVATION/GEN方向相反不能按示例硬编码。正式酒店的Resv.-GEN/XML CAS-GENERAL对应仍待同源证明
有效价 139详情/396费率项均无effectiveRate 字段存在于规范不等于当前环境会返回不能用该路径直接完成EFFECTIVE_RATE_AMOUNT映射

旧版 Oracle res_detail说明将 Reservations 的 All 定义在公司/旅行社/来源/团体/Block关联筛选中取消另有 Include 选项。因此把这个UI标签直接理解为 “所有状态”依据不足。该文档是旧版操作说明,只作概念区分;不据此推定当前 Cloud 的选项默认值或擅自排除取消/NoShow。 当前 Cloud 报表说明 也未提供足以确定全部状态纳入规则的细节。用户已有要求保持不变。

备注、Trace 与字段可用性

139笔均有唯一 Confirmation、唯一 primary guest及 Primary 姓名;成人/儿童、到离日期、房型、房数、base金额均存在。 这些是结构/数据可用性检查,尚不是报告显示名、公司角色、价格或源行粒度等价证明。

  • 30笔有备注共32条GEN/RESERVATION 30条27外部、3内部GENERAL/RESERVATION 1条RESERVATION/RESERVATION 1条。
  • 7笔有Trace共12条。139笔逐条核对备注数与Trace数均吻合搜索对应的indicator count没有“有标记但详情为空”的记录。
  • 当前房号74笔费率段房号73笔。搜索房号与详情当前房号本次一致仍不能证明到店历史房号口径。
  • 24笔有公司名称结构但26个顶层关联对象的角色全为Group本样本没有Company/TravelAgent/Source角色的映射证据。
  • 22笔有packageCode26笔有Block ID预订详情仍没有Block Code若要保留这列候选增补为getBlock。
  • RATE_CODE存在115笔缺失24笔为16 NoShow、8 Cancelled。不能填造费率或预先删除这些源行让处理器通过。
  • 94笔含多个roomRates段必须按日期确定选择不能取数组第一项。

在一笔实际有包价的样本上,分别只取 RateInfoDetails、只取 DailySummary,仍没有 effectiveRate 前者只返回有限基本字段后者有base和total不能认为仅改为单一fetch就补齐了有效价。 按试验用的 start≤arrival≤end 选择日费率每笔恰有一个候选搜索rateAmount与base在9笔不同base与total在7笔不同。 这直接表明不能随意取其中一个当XML有效价。该选段条件仍是诊断规则不是已经批准的生产边界。

原件、检查与请求定位

私有原件:/Users/chillishark/Downloads/arr-api-live-20260916-02rpv6tx/目录0700、文件0600。 源集合包含每次请求(不含鉴权头)、原始响应字节、摘要/状态/request IDs完整详情索引和聚合分析。 archive-integrity.json 固定477个已存在文件的大小与SHA-256。所有请求均核对预期应用凭据元数据密钥只在进程内使用。 没有打印客人、备注正文、公司名、房号、金额或预订ID。

请求 Oracle/Edge request ID
首次日期搜索 d38ebc55-e8c4-4212-ac4b-2c3d2f3a7262
100行基线首页/末页 8d509070-eddc-48d6-a74f-2def48e697f8 / 539eefdd-306e-4b85-96ff-af62ce693dd6
显式已退房 f2a8b92c-f398-45ae-86f4-e9eec9ef2a62
成对分房条件 b5b70deb-0655-4e53-a897-e2e1cb71dcf2 / 95d17de9-f66f-455e-9957-ea822e644896
带时区ETA / 本地T格式 b5cadee8-6652-4638-90a3-43866f3e7ca1 / 6a0e03a5-785b-4fff-85b0-72e90d664484
RateInfoDetails / DailySummary单独读取 5c424178-8500-492d-8e00-4a9715674c52 / 3e836325-4d29-49d2-98f6-014e0a6daa7f
收尾两页重查 0bc97801-4003-4910-96f2-96cf5852dd33 / 707b813d-9f01-49d4-b51e-a7f1dbe274e3

隐私最小化的聚合结果可在仓库检查。 研究脚本保存在 .planning/arr-api-live-probe-20260916/没有接入生产Web/worker。 本地stub验证了允许的方法/路径、body/query编码、鉴权注入、响应酒店/operation拒绝、路径约束、禁重定向和文件权限。 实际业务调用由上述隔离程序执行,未通过对话转发原始业务资料。

一次针对“InHouse且有PACKAGEITEM标记”的本地样本选择没有候选断言在网络请求前停止随后改选已有包价详情 完成两次定向fetch。这是测试样本调整不是平台失败。所有在线调用没有重试没有扩大日期范围或修改上游测试数据。

当前可推进与未完成项

两个现有接口的单日搜索→全详情→私有保存→身份/数量复核已跑通这不是原生ARR XML导出或财务流程验收。 手工XML属于hotel57106当前API属于OHIPSB02不能拿139与72直接判断接口多取/漏取。

下一步围绕实际剩余项收敛接入契约报告纳入范围与空ETA、有效价字段/计算口径、公司角色、备注/Trace及去重顺序。 Block读取仅按字段需要讨论扩展不能因试验发现缺口就自行放大授权。已有原件足以继续本地分析不必反复下载整批。 获得同源报告证据并选定可重放适配后,再编写生产采集/适配和独立验证不把这批测试数据提交Finance。

后续本地分析已解释价格差异并找到Oracle指定日期的有效价接口语义追查。 本页保留首次158请求的事实后续没有重复下载整批或改变测试数据。