Jump to content

URI Template

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Krauss (talk | contribs) at 01:35, 26 September 2016. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A URL Template is a way to specify a URL that includes parameters that must be substituted before the URL is resolved. The syntax is usually to enclose the parameter in Braces ({example}). The convention is for a parameter to not be Percent encoded unless it follows a Question Mark (?).

Examples

  • http://example.com/people/{firstName}-{lastName}/SSN
  • http://example.com/query?firstName={firstName}&lastName={lastName}

If we were building these urls for Björk with firstName=Björk and lastName=Guðmundsdóttir they would be:

  • http://example.com/people/Björk-Guðmundsdóttir/SSN
  • http://example.com/query?firstName=Bj%c3%b6rk&lastName=Gu%c3%b0mundsd%c3%b3ttir

Code

In Python 2.x, if you have the variable name that you want to put into the string url, you can simply do this:

import urllib2

while "{name}" in url:
    if "?" in url and url.find("?") < url.find("{name}"):
        url = url.replace("{name}", urllib2.quote(name), 1)
    else:
        url = url.replace("{name}", name, 1)

Note: this will go into an infinite loop if name == "{name}" or other such corner cases.

See also