@akala/core
Version:
151 lines (150 loc) • 6.42 kB
JSON
{
"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"]
]
}
}