UNPKG

@akala/core

Version:
151 lines (150 loc) 6.42 kB
{ "Additional Examples 1": { "level": 4, "variables": { "id": "person", "token": "12345", "fields": ["id", "name", "picture"], "format": "json", "q": "URI Templates", "page": "5", "lang": "en", "geocode": ["37.76", "-122.427"], "first_name": "John", "last.name": "Doe", "Some%20Thing": "foo", "number": 6, "long": 37.76, "lat": -122.427, "group_id": "12345", "query": "PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?book ?who WHERE { ?book dc:creator ?who }", "uri": "http://example.org/?uri=http%3A%2F%2Fexample.org%2F", "word": "drücken", "Stra%C3%9Fe": "Grüner Weg", "random": "šö䟜ñꀣ¥‡ÑÒÓÔÕÖרÙÚàáâãäåæçÿ", "assoc_special_chars": { "šö䟜ñꀣ¥‡ÑÒÓÔÕ": "ÖרÙÚàáâãäåæçÿ" } }, "testcases": [ ["{/id*}", "/person"], ["{/id*}{?fields,first_name,last.name,token}", "/person?fields=id,name,picture&first_name=John&last.name=Doe&token=12345"], ["/search.{format}{?q,geocode,lang,locale,page,result_type}", "/search.json?q=URI%20Templates&geocode=37.76,-122.427&lang=en&page=5"], ["/test{/Some%20Thing}", "/test/foo"], ["/set{?number}", "/set?number=6"], ["/loc{?long,lat}", "/loc?long=37.76&lat=-122.427"], ["/base{/group_id,first_name}/pages{/page,lang}{?format,q}", "/base/12345/John/pages/5/en?format=json&q=URI%20Templates"], ["/sparql{?query}", "/sparql?query=PREFIX%20dc%3A%20%3Chttp%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%3E%20SELECT%20%3Fbook%20%3Fwho%20WHERE%20%7B%20%3Fbook%20dc%3Acreator%20%3Fwho%20%7D"], ["/go{?uri}", "/go?uri=http%3A%2F%2Fexample.org%2F%3Furi%3Dhttp%253A%252F%252Fexample.org%252F"], ["/service{?word}", "/service?word=dr%C3%BCcken"], ["/lookup{?Stra%C3%9Fe}", "/lookup?Stra%C3%9Fe=Gr%C3%BCner%20Weg"], ["{random}", "%C5%A1%C3%B6%C3%A4%C5%B8%C5%93%C3%B1%C3%AA%E2%82%AC%C2%A3%C2%A5%E2%80%A1%C3%91%C3%92%C3%93%C3%94%C3%95%C3%96%C3%97%C3%98%C3%99%C3%9A%C3%A0%C3%A1%C3%A2%C3%A3%C3%A4%C3%A5%C3%A6%C3%A7%C3%BF"], ["{?assoc_special_chars*}", "?%C5%A1%C3%B6%C3%A4%C5%B8%C5%93%C3%B1%C3%AA%E2%82%AC%C2%A3%C2%A5%E2%80%A1%C3%91%C3%92%C3%93%C3%94%C3%95=%C3%96%C3%97%C3%98%C3%99%C3%9A%C3%A0%C3%A1%C3%A2%C3%A3%C3%A4%C3%A5%C3%A6%C3%A7%C3%BF"] ] }, "Additional Examples 2": { "level": 4, "variables": { "id": ["person", "albums"], "token": "12345", "fields": ["id", "name", "picture"], "format": "atom", "q": "URI Templates", "page": "10", "start": "5", "lang": "en", "geocode": ["37.76", "-122.427"] }, "testcases": [ ["{/id*}", "/person/albums"], ["{/id*}{?fields,token}", "/person/albums?fields=id,name,picture&token=12345"] ] }, "Additional Examples 3: Empty Variables": { "variables": { "empty_list": [], "empty_assoc": {} }, "testcases": [ ["{/empty_list}", [""]], ["{/empty_list*}", [""]], ["{?empty_list}", [""]], ["{?empty_list*}", [""]], ["{?empty_assoc}", [""]], ["{?empty_assoc*}", [""]] ] }, "Additional Examples 4: Numeric Keys": { "variables": { "42": "The Answer to the Ultimate Question of Life, the Universe, and Everything", "1337": ["leet", "as", "it", "can", "be"], "german": { "11": "elf", "12": "zwölf" } }, "testcases": [ ["{42}", "The%20Answer%20to%20the%20Ultimate%20Question%20of%20Life%2C%20the%20Universe%2C%20and%20Everything"], ["{?42}", "?42=The%20Answer%20to%20the%20Ultimate%20Question%20of%20Life%2C%20the%20Universe%2C%20and%20Everything"], ["{1337}", "leet,as,it,can,be"], ["{?1337*}", "?1337=leet&1337=as&1337=it&1337=can&1337=be"], ["{?german*}", ["?11=elf&12=zw%C3%B6lf", "?12=zw%C3%B6lf&11=elf"]] ] }, "Additional Examples 5: Explode Combinations": { "variables": { "id": "admin", "token": "12345", "tab": "overview", "keys": { "key1": "val1", "key2": "val2" } }, "testcases": [ ["{?id,token,keys*}", [ "?id=admin&token=12345&key1=val1&key2=val2", "?id=admin&token=12345&key2=val2&key1=val1" ] ], ["{/id}{?token,keys*}", [ "/admin?token=12345&key1=val1&key2=val2", "/admin?token=12345&key2=val2&key1=val1" ] ], ["{?id,token}{&keys*}", [ "?id=admin&token=12345&key1=val1&key2=val2", "?id=admin&token=12345&key2=val2&key1=val1" ] ], ["/user{/id}{?token,tab}{&keys*}", [ "/user/admin?token=12345&tab=overview&key1=val1&key2=val2", "/user/admin?token=12345&tab=overview&key2=val2&key1=val1" ] ] ] }, "Additional Examples 6: Reserved Expansion": { "variables": { "id": "admin%2F", "not_pct": "%foo", "list": ["red%25", "%2Fgreen", "blue "], "keys": { "key1": "val1%2F", "key2": "val2%2F" } }, "testcases": [ ["{+id}", "admin%2F"], ["{#id}", "#admin%2F"], ["{id}", "admin%252F"], ["{+not_pct}", "%25foo"], ["{#not_pct}", "#%25foo"], ["{not_pct}", "%25foo"], ["{+list}", "red%25,%2Fgreen,blue%20"], ["{#list}", "#red%25,%2Fgreen,blue%20"], ["{list}", "red%2525,%252Fgreen,blue%20"], ["{+keys}", "key1,val1%2F,key2,val2%2F"], ["{#keys}", "#key1,val1%2F,key2,val2%2F"], ["{keys}", "key1,val1%252F,key2,val2%252F"] ] } }