@Retention(value=RUNTIME) @Target(value=PARAMETER) public @interface QueryParam
Example 1:
@GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/resources")
Single<RestResponseBase<Headers, Body>> listByResourceGroup(@PathParam("resourceGroupName") String
resourceGroupName, @PathParam("subscriptionId") String subscriptionId, @QueryParam("$filter") String
filter, @QueryParam("$expand") String expand, @QueryParam("$top") Integer top, @QueryParam("api-version") String
apiVersion);
The value of parameters filter, expand, top, apiVersion will be encoded and encoded value will be used to replace the corresponding path segment {$filter}, {$expand}, {$top}, {api-version} 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 param, @QueryParam("connectionString") String connectionString);
In this case, if consumer pass "a=b" as the value for query then the resolved url looks like:
"http://wq.com/foo/paramblah/values?connectionString=a%3Db"
For such cases the encoded attribute can be used:
@GET("http://wq.com/foo/{subpath}/values")
String getValues(@PathParam("subpath") String param, @QueryParam("query", encoded = true) String query);
In this case, if consumer pass "a=b" as the value for param1 then the resolved url looks as expected:
"http://wq.com/foo/paramblah/values?connectionString=a=b"
| 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
QueryParam.value() is already encoded
hence engine should not encode it, by default value will be encoded. |
public abstract String value
public abstract boolean encoded
QueryParam.value() is already encoded
hence engine should not encode it, by default value will be encoded.Copyright © 2020 Microsoft Corporation. All rights reserved.