URI テンプレート展開 (RFC 6570)
RFC 6570 URI テンプレートは変数から URL を組み立てる方法を記述し、GitHub API、OpenAPI/Swagger のパステンプレート、ハイパーメディア(HAL/JSON-LD)リンクなど至る所で使われています。`https://api.example.com{/version}/users{/id}{?fields*,page}` のようなテンプレートは変数集合に対して実際の URL に展開されます。本ツールは仕様の 4 レベルすべてを実装します — 単純な `{var}` 展開、予約(`{+var}`)・フラグメント(`{#var}`)演算子、ラベル(`.`)・パス(`/`)・パス形式パラメータ(`;`)・フォームクエリ(`?`)・継続(`&`)演算子 — に加え explode(`*`)・prefix(`:n`)修飾子と、空・未定義値の正しい処理まで。変数は文字列・数値・リスト・キー/値マップを値とする JSON オブジェクトで指定し、出力は演算子の要求どおりに正確にパーセントエンコードされます。RFC 6570 の全例題集で検証済みです。すべてローカルで動作し、アップロードされません。
展開された URL
https://api.example.com/v2/users/42?fields=name&fields=email&page=1
RFC 6570 の 4 レベルすべてを実装:演算子 + : # . / ; ? & と explode(*)・prefix(:n) 修飾子。
使い方
- {波括弧} で URI テンプレートを入力、例:{/path}{?query*}。
- 変数を JSON オブジェクト(文字列・数値・配列・オブジェクト)で指定。
- 展開された URL を読んでコピー。テンプレートや変数を変えると結果がライブ更新されます。
よくある質問
- 演算子の意味は?
- 波括弧内の最初の文字が演算子を選びます:なし = カンマ連結の単純値;`+` は予約文字をエスケープしない;`#` はフラグメント;`.` はラベル;`/` はパスセグメント;`;` は `;name=value` パス形式パラメータ;`?` はフォームクエリ `?name=value`;`&` はクエリ継続。各々が独自の区切りと名前の有無を制御します。
- `*` と `:n` は何をしますか?
- `*` は explode 修飾子で、リストやマップを個別の構成要素に展開します(例:`{?list*}` → `?list=a&list=b`、`?list=a,b` ではなく)。`:n` は prefix 修飾子で、エンコード前に文字列値を先頭 n 文字に切り詰めます(例:`value` の `{var:3}` → `val`)。
- リストやマップはどう渡しますか?
- JSON を使います:リストは配列(`"fields": ["name","email"]`)、連想マップはオブジェクト(`"keys": {"semi": ";"}`)です。文字列・数値はスカラーです。欠落・null・空リスト・空オブジェクトの変数は未定義とみなされ、出力に何も加えません。
- エンコードは正しいですか?
- はい — 値は演算子の許可集合に従ってパーセントエンコードされます。単純およびほとんどの演算子は非予約集合外のすべてをエンコードし、`+` と `#` は予約 URL 文字(および既存の %XX トリプレット)をそのまま通し、RFC 6570 に一致します。実装は仕様の全例題表を通過します。
関連ツール
IPv6 展開 / 圧縮
IPv6 アドレスを短縮形 ::1 と完全展開された 8 グループ表現の間で切り替える、リバース DNS とバイナリも。
/.well-known/* URI リファレンス
IANA登録のwell-known URIの検索可能カタログ — `security.txt`·`openid-configuration`·`apple-app-site-association`·`acme-challenge` 他30+、RFCリファレンス·使用例付き。
URL エンコーダー / デコーダー
URL 用にテキストをパーセントエンコード、または URL をデコード。
Data URI パーサー & デコーダー
data: URI をデコードして MIME タイプ・エンコーディング・サイズ・デコード内容をブラウザ上で確認します。
OAuth 2.0 PKCE ジェネレーター
OAuth 2.0 PKCE(RFC 7636)用の code_verifier + S256/plain code_challenge を生成。authorization URLとトークン交換用curlも自動作成。
mailto: リンクビルダー
宛先・Cc・Bcc・件名・本文を入力して RFC 6068 準拠でパーセントエンコードされた mailto: URL を生成。<a> タグにそのまま埋め込めます。