JavaScriptによるRFC6570 - URI Templateの実装

JavaScriptで実装したのがdraftレベルのしか見つからなかったので作ってみました。
(↑Lv4まで対応してるのが有りました。でもせっかく作ったので引き続き公開しておきます。)

URI Templateって?

簡単に言うとURIに特化したテンプレートエンジンです。
「http://www.example.com/users/{userid:1}/{userid}/」って書いといて「http://www.example.com/users/t/test/」って文字列作れたら便利だよね!?

詳しくは以下を参考にしてください。

以下からお持ち帰りください。

githubもjsdo.itも初めて使うのでおかしかったら教えてください。

スクリプト本体はこちら
gitgub→https://github.com/s025236/URI-Template
jsdo.it→http://jsdo.it/s025236/URI-Template-0.1

テストコードはこちら
→http://jsdo.it/s025236/URI-Template-0.1.test

使い方

まずはscriptタグでロードします。

<script src="https://raw.github.com/s025236/URI-Template/master/URI-Template.js"></script>

あとはURI_Template::parseするだけです。

//window.useridを参照してパース結果を返します。
URI_Template::parse('http://www.example.com/users/{userid}/'); 
//オブジェクトを参照してパース結果を返します。
URI_Template::parse('http://www.example.com/users/{userid}/',{'userid' : 'test'});

仕様と不一致

RFC内に色々サンプルがあるのですが以下の理由によりいくつかテストが通りません。

  • JavaScriptに「!」はエスケープしないけど「/」はする関数なんて知らないよ…
  • OPコードが「;」の時だけなんで処理違うの?RFCがおかしいきがする。

最後に

応援コメントお待ちしております。
不具合報告や使用例等ありましたら、是非ご連絡ください。