第 1 行,第 24 列
{/version,resource}- 变量:
version· 已定义 - 变量:
resource· 已定义
展开片段: /v1/search
URL / URI
输入一个模板和变量 JSON 对象,查看完整 URI 及各表达式的展开结果。
模板与变量仅在当前浏览器处理,不请求输入或结果中的地址。
已省略变量:无
未使用的 JSON 键:无
第 1 行,第 24 列
{/version,resource}version · 已定义resource · 已定义展开片段: /v1/search
第 1 行,第 43 列
{?q,page,tags*}q · 已定义page · 已定义tags* · 已定义展开片段: ?q=hello%20world&page=2&tags=red&tags=blue
已显示 2 / 2 个表达式
RFC 6570 Level 4:{var}、{+var}、{#var}、{.var}、{/var}、{;var}、{?var}、{&var};:n 截取前缀,* 展开列表或映射。
上限按 UTF-16 单位计:模板 16,384,JSON 65,536,输出 262,144;最多 500 个表达式。
2 个表达式 · 0 个省略变量 · 输出 75 单位
调试接口时,资源 ID 里的斜杠通常要编码成 %2F,而基础路径里的斜杠需要保留。URI 模板展开器把这两种情况放在同一工作台里,让你先检查变量替换的实际结果,再把模板写进客户端。
URI 模板测试的关键不只是花括号是否配对,还包括变量是字符串、列表还是映射,以及操作符如何插入分隔符。这里按照 RFC 6570 进行展开,相对引用同样可以输入,不要求每个结果都是完整网址。
URI 模板展开器为每个表达式保留位置与输出片段。查询参数消失时,可以直接检查变量是缺失、null 还是空集合;空字符串则单独标记,避免把“没有传值”和“传了空值”混为一谈。
{?tags} 会生成一个逗号连接的值,{?tags*} 会为每个列表项重复参数名;映射带星号时则使用各成员的键。表达式明细让你看到每段输出,不用从整条长地址里猜分隔符来自哪里。
user.id 表示名为“user.id”的完整键,不会访问嵌套对象。变量名中的百分号编码也不会被解码;模板写了什么名称,JSON 就需要对应的键。
保留字符示例展示路径斜杠如何保留,复合值示例包含列表、映射和中文前缀。加载前会展示替换内容与字符数量;应用后可撤销一次,同时恢复输入和旧结果。
自动展开在修改后等待 350 毫秒;关闭后可点击按钮或按 Ctrl/Cmd + Enter。输入一变,旧结果立即过期,复制和下载会禁用,直到当前内容成功展开。
URI 模板展开器支持普通展开及 +、#、.、/、;、?、& 操作符。前缀长度允许 1–9999 个 Unicode 字符,* 用于列表或映射。百分号编码与分隔符由操作符决定,不需要额外切换编码模式。
数字值不会先转为浮点数。9007199254740993 这样的长 ID 可原样展开,-0 与指数记法也不改写;布尔值输出 true 或 false。变量 JSON 原文随报告保留,便于复查输入。
模板与 JSON 语法错误显示行列位置,重复键会被拒绝,嵌套容器通过 JSON Pointer 标出位置。缺失变量则是可检查的诊断项,不会被误报成语法错误;表达式完全省略也可能是合法结果。
复制按钮只提供展开后的 URI;JSON 报告包含模板、变量原文、全部表达式明细和省略及未使用的名称。页面每次显示 50 个表达式,下载包含全部记录,不受分页限制。
表达式的花括号应保留原样:/users/{id} 包含变量,/users/%7Bid%7D 则只是带编码花括号的字面量。不要先对整个模板做 URL 编码;变量值的编码由表达式操作符完成。
/ 会在每个已定义变量前加入斜杠,列表带 * 时每项都会得到斜杠。普通展开会编码值内部的斜杠,而 + 保留值中的斜杠但不额外插入一个;三者用途不同。
标准没有任意的可选空格分隔操作符。可以预先把需要的词组合成一个字符串,展开时其中空格变为 %20。列表的 * 仍按所选操作符使用 /、& 等固定分隔符。
单靠正则表达式无法检查变量类型。例如 {items:3} 的语法本身正确,但 items 为列表时不能使用前缀。本工具会在解析模板后结合变量 JSON 验证,并在出错时报告位置。
RFC 6570 定义的是变量到 URI 的展开;多变量、保留字符和映射展开可能无法唯一反推。这里不会从 URI 提取路由参数,这类需求应使用路由匹配工具。
发现问题?