URI 模板展开器 (RFC 6570)
网络
RFC 6570 URI 模板描述如何由变量构建 URL,应用极广:GitHub API、OpenAPI/Swagger 路径模板,以及超媒体(HAL/JSON-LD)链接都在使用。像 `https://api.example.com{/version}/users{/id}{?fields*,page}` 这样的模板会针对一组变量展开为真实 URL。本工具实现规范的全部四个级别 — 简单 `{var}` 展开,保留(`{+var}`)与片段(`{#var}`)运算符,标签(`.`)、路径(`/`)、路径风格参数(`;`)、表单查询(`?`)与续接(`&`)运算符 — 以及 explode(`*`)与前缀(`:n`)修饰符,并正确处理空值与未定义值。将变量以 JSON 对象提供,其值可为字符串、数字、列表或键/值映射;输出会严格按运算符要求做百分号编码。已通过 RFC 6570 完整示例集验证。全部在本地运行 — 不上传任何内容。
展开后的 URL
https://api.example.com/v2/users/42?fields=name&fields=email&page=1
实现 RFC 6570 全部四个级别:运算符 + : # . / ; ? & 及 explode(*) 与前缀(:n) 修饰符。
使用方法
- 用 {花括号} 输入 URI 模板,例如 {/path}{?query*}。
- 以 JSON 对象提供变量(字符串、数字、数组或对象)。
- 读取展开后的 URL 并复制;修改模板或变量即可实时看到结果。
常见问题
- 各运算符是什么意思?
- 花括号内第一个字符选择运算符:无 = 逗号连接的简单值;`+` 保留保留字符不转义;`#` 生成片段;`.` 标签;`/` 路径段;`;` 形如 `;name=value` 的路径风格参数;`?` 表单查询 `?name=value`;`&` 查询续接。每个都控制各自的分隔符以及是否包含名称。
- `*` 与 `:n` 有何作用?
- `*` 是 explode 修饰符:列表或映射会展开为独立分量(例如 `{?list*}` → `?list=a&list=b`,而非 `?list=a,b`)。`:n` 是前缀修饰符,在编码前将字符串值截断为前 n 个字符(例如 `value` 的 `{var:3}` → `val`)。
- 如何传入列表和映射?
- 用 JSON:列表是数组(`"fields": ["name","email"]`),关联映射是对象(`"keys": {"semi": ";"}`)。字符串与数字为标量。缺失、null、空列表或空对象的变量视为未定义,对输出无任何贡献。
- 编码是否正确?
- 正确 — 值按运算符的允许集合做百分号编码。简单运算符及多数运算符会编码非保留集合之外的一切,而 `+` 与 `#` 还会原样放行保留 URL 字符(及已有的 %XX 三元组),与 RFC 6570 一致。实现通过了规范的完整示例表。
相关工具
MAC 地址格式化
在冒号、连字符、Cisco 点和无分隔符之间重新格式化 MAC 地址,可选大小写 —— 并显示其单播/组播与全局/本地类型。
IPv4 地址转换器
在点分十进制、32 位整数、十六进制和二进制之间转换 IPv4 地址,并判断其为私有、公网、环回等类型。
DNS 记录参考
可搜索的 DNS 记录类型速查表 — A、AAAA、CNAME、MX、TXT、NS、SOA、PTR、SRV、CAA、DNSSEC、SVCB / HTTPS — 含示例。
子网计算器(IPv4 / CIDR)
解析 IPv4 CIDR:网络地址、广播、子网掩码、通配符、主机范围、地址类。附二进制细节与公网/私网判定。
User Agent 解析器
把 User-Agent 字符串解析为浏览器、引擎、操作系统、设备、CPU。识别 20+ 种爬虫,含 GPTBot、ClaudeBot、PerplexityBot。
HTTP 状态码参考
可搜索的全部 HTTP 状态码(1xx-5xx)参考 — 含概要、RFC、使用时机与常见陷阱。