@Retention(value=RUNTIME) @Target(value=PARAMETER) public @interface HostParam
Host
.
You provide the value, which should be the same (case sensitive) with the parameterized segments in '{}' in the host, unless there's only one parameterized segment, then you can leave the value empty. This is extremely useful when the designer of the API interface doesn't know about the named parameters in the host.
Example 1: Named parameters
@Host("{accountName}.{suffix}") interface DatalakeService { @GET("jobs/{jobIdentity}") Job getJob(@HostParam("accountName") String accountName, @HostParam("suffix") String suffix, @PathParam ("jobIdentity") jobIdentity); }
Example 2: Unnamed parameter
@Host(KEY_VAULT_ENDPOINT) interface KeyVaultService { @GET("secrets/{secretName}") Secret get(@HostParam String vaultName, @PathParam("secretName") String secretName); }
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
HostParam.value() is already
encoded hence engine should not encode it, by default value will be encoded. |
public abstract String value
public abstract boolean encoded
HostParam.value()
is already
encoded hence engine should not encode it, by default value will be encoded.Copyright © 2021 Microsoft Corporation. All rights reserved.