# 接口兼容性演示输入

此目录包含项目自行编写的 OpenAPI 示例，不来自实际业务系统，没有真实用户数据。

- `old.openapi.json`：旧接口规范。
- `new.openapi.json`：新接口规范。
- `expected-findings.json`：人工整理的三项主要预期结果，不是程序实际运行结果，也不锁定最终报告接口。

## 已验证的变化

1. `POST /users` 新增必填请求字段 `phone`：旧客户端只提交 `name` 时不再满足新契约。
2. `GET /orders` 的请求参数 `status` 不再接受 `cancelled`：旧客户端发送该值时不再满足新契约。
3. 删除 `GET /orders/{orderId}`：依赖该操作的旧客户端无法继续按旧契约调用。

新增一个可选属性本身不应被误报成新增必填字段。后续测试应另行补充兼容性反例、边界例、本地引用及未支持结构，不能只验证这组三个正例。

在项目根目录运行：

```text
node dist/moonapi-check.js check examples/compatibility-demo/old.openapi.json examples/compatibility-demo/new.openapi.json --format text
```

预期：complete、3 项破坏、退出码 1。已通过核心与 CLI 验证；原始人工预期文件仍保留，自动测试读取它逐项对照。可选字段、参数覆盖、引用和失败场景测试位于 src/ 与 tests/。
