Annotation Type PathParam
-
@Retention(RUNTIME) @Target(PARAMETER) public @interface PathParam
Annotation to annotate replacement for a named path segment in REST endpoint URL.A parameter that is annotated with PathParam will be ignored if the "uri template" does not contain a path segment variable with name
value()
.Example 1:
@GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft .Compute/virtualMachines/") VirtualMachine getByResourceGroup(@PathParam("subscriptionId") String subscriptionId, @PathParam ("resourceGroupName") String rgName, @PathParam("foo") String bar);
The value of parameters subscriptionId, resourceGroupName will be encoded and encoded value will be used to replace the corresponding path segment
{subscriptionId}
,{resourceGroupName}
respectively.Example 2: (A use case where PathParam.encoded=true will be used)
It is possible that, a path segment variable can be used to represent sub path:
@GET("http://wq.com/foo/{subpath}/values") String getValues(@PathParam("subpath") String param1);
In this case, if consumer pass "a/b" as the value for param1 then the resolved url looks like: "
http://wq.com/foo/a%2Fb/values
".For such cases the encoded attribute can be used:
@GET("http://wq.com/foo/{subpath}/values") String getValues(@PathParam(value = "subpath", encoded = true) String param1);
In this case, if consumer pass "a/b" as the value for param1 then the resolved url looks as expected: "
http://wq.com/foo/a/b/values
".
-
-
Element Detail
-
value
String value
The name of the variable in the endpoint uri template which will be replaced with the value of the parameter annotated with this annotation.- Returns:
- The name of the variable in the endpoint uri template which will be replaced with the value of the parameter annotated with this annotation.
-
-
-
encoded
boolean encoded
A value true for this argument indicates that value ofvalue()
is already encoded hence engine should not encode it, by default value will be encoded.- Returns:
- Whether or not this path parameter is already encoded.
- Default:
- false
-
-