# MoonUriTemplate 项目申报书（事实资料稿，申请人核实后人工定稿）
## 基本信息
- 项目名称：MoonUriTemplate：MoonBit RFC 6570 URI 模板与端点目录库
- 参赛者：
- 联系方式：
- GitHub 仓库链接：https://github.com/JSJ222/MoonUriTemplate
- 项目方向：新生态项目建设 / 通用协议基础库；原创 MoonBit 实现，Apache-2.0，非源码移植。
## 项目简介与通用性
API SDK、MCP 资源和超媒体响应都会根据变量生成 URI。手工拼接容易混淆路径斜杠、Unicode、可选参数和列表编码。本库把 RFC 6570 Level 1–4 展开、精确长度预检和命名端点目录作为可复用内核，供上层 HTTP、资源管理及测试工具组合使用。URI 解析和路径匹配包解决不同问题；具体同类包对照见 `docs/topic-research.md`，正式申报前复查 Mooncakes。
## 三个完整使用场景
1. **API SDK 批量请求**：编译 `/users/{id}{?fields*,limit}`，输入 `team/a`、字段列表及分页参数；先检查混合请求的单条和总输出预算，再生成斜杠安全编码的 URI，避免生成到一半才超限。
2. **MCP 资源参数审查**：接收服务端的命名模板及多组用户参数，对全部请求收集未知模板、缺失、无用参数和不兼容前缀类型诊断；审查报告保留请求位置与变量名，不保留绑定值，业务再决定哪些问题需要拒绝。
3. **超媒体端点迁移**：服务将订单与下载端点从 v1 更新到 v2，比较两版目录的新增、删除和变化模板，保留字面量改动及变量/运算符契约差异；用代表性参数展开复核后上线，结构报告不当作兼容性证明。
## 核心功能范围与实现路径
- 一次扫描编译 AST，按运算符表执行 UTF-8 百分号编码、标量/列表/关联数组、prefix 与 explode；提供部分绑定、JSON 桥接、静态策略与位置诊断。
- 十月已有工作：混合请求精确总长度预检、变量引用反查。本轮新增 `diff_catalog` 目录迁移报告、`inspect_requests` 有界多请求审查；修复 `expand_requests` 在总预算拒绝前构造输出的问题。
- 采用固定来源的符合性向量、异常输入、预算边界与四后端回归校验；目录比较复用模板契约分析，批处理先计量再展开，避免引入第二套编码规则。
## 预期验收产物与来源
交付原生库、README、API/迁移示例、测试、CI、来源说明及 Apache-2.0 许可；公开 GitHub、有效提交和 Mooncakes 链接在推送/发布后核验。依据 [RFC 6570](https://www.rfc-editor.org/rfc/rfc6570) 独立实现；公开测试向量的固定版本及 Apache-2.0 许可见 `THIRD_PARTY.md`。
边界：不执行 HTTP、不解析通用 URI、不反向匹配、不证明目录兼容；缺失变量在普通展开中按 RFC 省略，不能将审查提示误当成必填规则。申请人需亲自复现和解释本轮贡献。
