1行、24列
{/version,resource}- 変数:
version· 定義済み - 変数:
resource· 定義済み
展開部分: /v1/search
URL / URI Tools
テンプレートと変数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単位
APIのパスを組み立てるとき、値の中のスラッシュを残すかどうかで参照先が変わります。URIテンプレート展開なら、文字列連結では見落としやすい予約文字の扱いを実際の値で確認できます。
RFC 6570の変数展開は、単に名前を置き換える仕組みではありません。値がリストかマップか、どの演算子を選ぶかによって区切り方も変わります。相対参照も受け付けるため、完全なURLを用意する必要はありません。
URIテンプレート展開では式の位置と生成された部分を並べて表示します。変数が未指定、null、空のコレクションなら省略されます。空文字列は別の状態として表示されるため、入力の不足と空の値を区別できます。
{?tags}はリストをコンマ区切りの一つの値にします。{?tags*}なら各要素にtagsという名前を付けて繰り返します。マップの展開ではメンバーのキーを使うため、同じ星印でも値の種類が重要です。
user.idは階層をたどる記法ではなく、その名前のキーです。パーセントエンコードされた名前も復号しません。テンプレートとJSONで同じつづりを使用してください。
予約文字の例ではパスのスラッシュ、複合値の例ではリスト、マップ、Unicodeの接頭辞を確認できます。読み込み前に置換内容を確認でき、適用後は入力と結果を一度だけ復元できます。
自動展開は編集後350ミリ秒で実行します。オフにするとボタンやCtrl/Cmd + Enterで実行できます。入力を変えるとコピーとダウンロードは無効になり、成功後に再び使えます。
URIテンプレート展開は通常の展開と+、#、.、/、;、?、&を扱います。:nは1〜9999文字の接頭辞、*はリストやマップに対応します。パーセントエンコーディングと区切り文字は演算子が決めます。
JSONの数値は元の表記を保ちます。9007199254740993のような整数も浮動小数点数に変換せず、-0や指数表記も書き換えません。真偽値はtrueまたはfalseとして展開します。
テンプレートとJSONの構文エラーには行と列を表示し、重複キーは拒否します。入れ子の値はJSON Pointerで場所を示します。未定義変数の省略は正常な処理なので、それだけで実行エラーにはしません。
コピーはURI文字列のみです。JSONレポートにはテンプレート、変数JSONの原文、全式の詳細、省略名と未使用キーを含めます。画面は50式ずつ表示しますが、保存するレポートに省略はありません。
式の波括弧はそのままにします。/users/{id}は変数を含みますが、/users/%7Bid%7Dは符号化済みのリテラルなので置換されません。テンプレート全体を先にURLエンコードせず、値の符号化は演算子に任せます。
/は定義された変数の前にスラッシュを加え、リストに*があれば各要素の前に加えます。通常の展開は値の中のスラッシュを符号化し、+はスラッシュを残しますが新たには追加しません。
任意の空白区切りを指定する演算子はありません。必要な単語を一つの文字列にして渡せば、空白は%20になります。リストを*で展開すると、選んだ演算子に従い/や&で区切られます。
正規表現だけでは値の型まで判断できません。たとえば{items:3}は構文上正しくても、itemsがリストなら接頭辞を適用できません。このツールは式と変数を合わせて検証し、失敗位置を表示します。
RFC 6570が定めるのは変数からURIへの展開です。複数変数、予約文字、マップの展開は元の値を一意に復元できない場合があります。本ページではURIからルート変数を抽出しません。
問題がありますか?