Expands templates in a URI template that is relative to a base URL.
If the URI template starts with a "/" the raw path from the base URL is stripped out. If the
URI template is a full URL then it is used instead of the base URL.
Supports Level 1 templates and all Level 4 composite templates as described in: RFC 6570.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# Class UriTemplate (2.0.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.0.0 (latest)](/java/docs/reference/google-http-client/latest/com.google.api.client.http.UriTemplate)\n- [1.47.1](/java/docs/reference/google-http-client/1.47.1/com.google.api.client.http.UriTemplate)\n- [1.46.3](/java/docs/reference/google-http-client/1.46.3/com.google.api.client.http.UriTemplate)\n- [1.45.3](/java/docs/reference/google-http-client/1.45.3/com.google.api.client.http.UriTemplate)\n- [1.44.2](/java/docs/reference/google-http-client/1.44.2/com.google.api.client.http.UriTemplate)\n- [1.43.2](/java/docs/reference/google-http-client/1.43.2/com.google.api.client.http.UriTemplate)\n- [1.42.3](/java/docs/reference/google-http-client/1.42.3/com.google.api.client.http.UriTemplate)\n- [1.41.8](/java/docs/reference/google-http-client/1.41.8/com.google.api.client.http.UriTemplate) \n\n public class UriTemplate\n\nExpands URI Templates.\n\nThis Class supports Level 1 templates and all Level 4 composite templates as described in: [RFC 6570](http://tools.ietf.org/html/rfc6570).\n\nSpecifically, for the variables: var := \"value\" list := \\[\"red\", \"green\", \"blue\"\\] keys :=\n\\[(\"semi\", \";\"),(\"dot\", \".\"),(\"comma\", \",\")\\]\n\nThe following templates results in the following expansions: {var} -\\\u003e value {list} -\\\u003e\nred,green,blue {list*} -\\\u003e red,green,blue {keys} -\\\u003e semi,%3B,dot,.,comma,%2C {keys* } -\\\u003e\nsemi=%3B,dot=.,comma=%2C {+list} -\\\u003e red,green,blue {+list*} -\\\u003e red,green,blue {+keys} -\\\u003e\nsemi,;,dot,.,comma,, {+keys*} -\\\u003e semi=;,dot=.,comma=, {#list} -\\\u003e #red,green,blue {#list\\*} -\\\u003e\n\nred,green,blue {#keys} -\\\u003e #semi,;,dot,.,comma,, {#keys\\*} -\\\u003e #semi=;,dot=.,comma=, X{.list} -\\\u003e\n=================================================================================================\n\nX.red,green,blue X{.list*} -\\\u003e X.red.green.blue X{.keys} -\\\u003e X.semi,%3B,dot,.,comma,%2C X{.keys* }\n-\\\u003e X.semi=%3B.dot=..comma=%2C {/list} -\\\u003e /red,green,blue {/list*} -\\\u003e /red/green/blue {/keys} -\\\u003e\n/semi,%3B,dot,.,comma,%2C {/keys* } -\\\u003e /semi=%3B/dot=./comma=%2C {;list} -\\\u003e ;list=red,green,blue\n{;list*} -\\\u003e ;list=red;list=green;list=blue {;keys} -\\\u003e ;keys=semi,%3B,dot,.,comma,%2C {;keys* } -\\\u003e\n;semi=%3B;dot=.;comma=%2C {?list} -\\\u003e ?list=red,green,blue {?list*} -\\\u003e\n?list=red\\&list=green\\&list=blue {?keys} -\\\u003e ?keys=semi,%3B,dot,.,comma,%2C {?keys* } -\\\u003e\n?semi=%3B\\&dot=.\\&comma=%2C {\\&list} -\\\u003e \\&list=red,green,blue {\\&list*} -\\\u003e\n\\&list=red\\&list=green\\&list=blue {\\&keys} -\\\u003e \\&keys=semi,%3B,dot,.,comma,%2C {\\&keys*} -\\\u003e\n\\&semi=%3B\\&dot=.\\&comma=%2C {?var,list} -\\\u003e ?var=value\\&list=red,green,blue \n\nInheritance\n-----------\n\n[Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \\\u003e UriTemplate \n\nInherited Members\n-----------------\n\n[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) \n[Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) \n[Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) \n[Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) \n[Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) \n[Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) \n[Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) \n[Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) \n[Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) \n[Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) \n[Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)\n\nStatic Methods\n--------------\n\n### expand(String pathUri, Object parameters, boolean addUnusedParamsAsQueryParams)\n\n public static String expand(String pathUri, Object parameters, boolean addUnusedParamsAsQueryParams)\n\nExpands templates in a URI.\n\nSupports Level 1 templates and all Level 4 composite templates as described in: [RFC 6570](http://tools.ietf.org/html/rfc6570).\n\n### expand(String baseUrl, String uriTemplate, Object parameters, boolean addUnusedParamsAsQueryParams)\n\n public static String expand(String baseUrl, String uriTemplate, Object parameters, boolean addUnusedParamsAsQueryParams)\n\nExpands templates in a URI template that is relative to a base URL.\n\nIf the URI template starts with a \"/\" the raw path from the base URL is stripped out. If the\nURI template is a full URL then it is used instead of the base URL.\n\nSupports Level 1 templates and all Level 4 composite templates as described in: [RFC 6570](http://tools.ietf.org/html/rfc6570).\n\nConstructors\n------------\n\n### UriTemplate()\n\n public UriTemplate()"]]