Java
1. Install the Koople SDK as a dependency in your application.
Maven
Gradle
<dependency>
<groupId>io.koople</groupId>
<artifactId>server-sdk-java</artifactId>
<version>0.1.2</version>
</dependency>
implementation 'io.koople:server-sdk-java:0.1.2'
2. Initliaze the SDK. The SDK key authorizes your application to connect to a specific project and environment. The java SDK uses the
SERVER
key.KClient client = KClient.initialize("YOUR_API_KEY");
3. Get your feature flags value.
Boolean isEnabled = client.isEnabled("myAwesomeFeature");
if (isEnabled) {
// Do something when the feature is enabled.
} else {
// Do something when the feature is not enabled.
}
KUser user = KUser.create("aUserId");
Boolean isEnabled = client.isEnabled("myAwesomeFeature", user);
if (isEnabled) {
// Do something when the feature is enabled.
} else {
// Do something when the feature is not enabled.
}
Use
initialize
to get a validated client object.Parameter | Description | |
apiKey | The server ApiKey for your project environment. | required |
poolingInterval | Interval in seconds with which the SDK makes requests to the server to update the evaluation object. | optional |
Interval in seconds with which the SDK makes requests to the server to update the evaluation object. The minimum value is
10
seconds. If the value is less than 10
it will be ignored and automatically set to 10
. The default value is 60
seconds.KClient client = KClient.initialize("YOUR_API_KEY", 30);
The
isEnabled
method will return a boolean indicating whether a release toggle is enabled or disabled.Name | Type | |
releaseToggleKey | string | required |
user | KUser | optional |
//anonymous evaluation
kKlient.isEnabled("myAwesomeFeature");
KUser user = KUser.create("aUserId");
client.isEnabled("myAwesomeFeature", user);
The evaluation of an unexistent
releaseToggleKey
will return false
as an evaluation result.The valueOf method will return a value for a remote config. You can pass an optional second parameter that will be used as a fallback if there is no value.
Name | Type | |
remoteConfigKey | string | required |
user | KUser | optional |
defaultValue | string | optional |
client.valueOf("theme");
// or
client.valueOf("theme", "defaultValue");
KUser user = KKer.create("aUserId");
client.valueOf("theme", user);
//or
client.valueOf("theme", user, "defaultValue");
The
KUser
object represents a user with the properties to be evaluated. The properties can be added in the following ways.Name | Type | |
identity | string | required |
attributes | List<KUserAttribute> | optional |
ArrayList<KUserAttribute> mylist = new ArrayList<KUserAttribute>() {{
add(new KUserAttribute("age", 17));
add(new KUserAttribute("gender", "male"));
}};
KUser user = KUser.create("userId", attributes);
The user can be created first for adding attributes later.
KUser user = KUser.create("userId")
.with("age", 17)
.with("gender", "male");
Also, the user can be created as an anonymous user.
KUser user = KUser.anonymous();
The
KUserAttribute
represents a key-value object to set the name and value of a user attribute.Name | Type | |
name | string | required |
value | Object | required |
Value object can be a string, a number or a boolean type.
new KUserAttribute("age", 17);
new KUserAttribute("gender", "male");
new KUserAttribute("vip", true);
Last modified 2yr ago