@Retention(value=RUNTIME) @Target(value=PARAMETER) public @interface PathParam
A parameter that is annotated with PathParam will be ignored if the "uri template" does not contain a path
segment variable with name PathParam.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
".
Modifier and Type | Required Element and Description |
---|---|
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.
|
Modifier and Type | Optional Element and Description |
---|---|
boolean |
encoded
A value true for this argument indicates that value of
PathParam.value() is already encoded
hence engine should not encode it, by default value will be encoded. |
public abstract String value
public abstract boolean encoded
PathParam.value()
is already encoded
hence engine should not encode it, by default value will be encoded.Copyright © 2021 Microsoft Corporation. All rights reserved.