跳转至

http.frm.openapi

OpenAPI 3 同源导出(P6-D;路由表 → JSON 文本)

同源语义:输入 = router.ct 表语法的同一字符串("METHOD SP pattern" 条目, '|' 分隔;D-P6-1 释义)。导出器自解析(零 use;router 导出面是匹配器, 枚举器不在其公开面 —— 自解析纯 Str 处理,与表语法零宽容对齐:畸形条目 跳过,未知方法 token 跳过,登记)。

输出口径(钉版快照面,键序固定;紧凑单行): {"openapi":"3.0.3","info":{"title":T,"version":V},"paths":{…}} path 键 = OpenAPI 形(:name 段 → {name});同路径多方法聚合进同一 path 对象(声明序;同 path 同方法重复 → 首现保留,后续跳过 —— JSON 键唯一)。 方法键 = 小写。每操作: {"parameters":[…],"responses":{"200":{"description":"OK"}}} 参数(按出现序):{"name":N,"in":"path","required":true,"schema":{"type":"string"}} 无参操作省 parameters 键。description 默认面 OK;逐操作响应码/描述自定义 列志向(v1 表语法无承载位)。

JSON 串字面量:源内裸 '{' 一律 '{' 转义(sse.ct 95 字表先例;'}' 原样); 值转义 oa_json_escape:'"' '\' 与 <0x20(具名 \b\f\n\r\t,余 \u00XX 十六 进制小写)。UTF-8 ≥0x80 透传。

快照语义:夹具手写期望串 assert_eq —— 路由表任一改动 → 快照必红(计划原文 "路由表改 → 快照必变")。

pub fn

Signature Returns Description
oa_json_escape(s: Str) Str —
oa_mcode(m: Str) I64 —
oa_mkey(code: I64) Str —
oa_path_openapi(p: Str) Str —
oa_params_json(p: Str) Str path 参数名 JSON 数组前缀(按出现序;无参 → "")
oa_export(routes: Str, title: Str, version: Str) Str —