Jump to content

URI Template: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Line 12: Line 12:


==Code==
==Code==

Java supports URI Template. Refer external links at the bottom


In [[Python (programming language)|Python]] 2.x, if you have the variable <code>name</code> that you want to put into the string <code>url</code>, you can simply do this:
In [[Python (programming language)|Python]] 2.x, if you have the variable <code>name</code> that you want to put into the string <code>url</code>, you can simply do this:

Revision as of 06:55, 3 March 2017

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

Java supports URI Template. Refer external links at the bottom

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