mirror of
https://github.com/Unleash/unleash.git
synced 2025-01-11 00:08:30 +01:00
90 lines
2.3 KiB
Markdown
90 lines
2.3 KiB
Markdown
---
|
||
id: go_sdk
|
||
title: GO SDK
|
||
---
|
||
|
||
> **Required details**
|
||
>
|
||
> - **API URL** – Where you should connect your client SDK
|
||
> - **API Secret** – Your API secret required to connect to your instance.
|
||
>
|
||
> You can find this information in the “Admin” section Unleash management UI.
|
||
|
||
### 1. Install unleash-client-go
|
||
|
||
To install the latest version of the client use:
|
||
|
||
```bash
|
||
go get github.com/Unleash/unleash-client-go/v3
|
||
```
|
||
|
||
If you are still using Unleash Server v2.x.x, then you should use:
|
||
|
||
```bash
|
||
go get github.com/Unleash/unleash-client-go
|
||
```
|
||
|
||
### 2. Initialize unleash
|
||
|
||
The easiest way to get started with Unleash is to initialize it early in your application code:
|
||
|
||
```go
|
||
import (
|
||
"github.com/Unleash/unleash-client-go/v3"
|
||
)
|
||
|
||
func init() {
|
||
unleash.Initialize(
|
||
unleash.WithListener(&unleash.DebugListener{}),
|
||
unleash.WithAppName("my-application"),
|
||
unleash.WithUrl("http://unleash.herokuapp.com/api/"),
|
||
unleash.WithCustomHeaders(http.Header{"Authorization": {"<Client secret>"}}),
|
||
)
|
||
}
|
||
```
|
||
|
||
### 3. Use unleash
|
||
|
||
After you have initialized the unleash-client you can easily check if a feature toggle is enabled or not.
|
||
|
||
```go
|
||
unleash.IsEnabled("app.ToggleX")
|
||
```
|
||
|
||
### 4. Stop unleash
|
||
|
||
To shut down the client (turn off the polling) you can simply call the destroy-method. This is typically not required.
|
||
|
||
unleash.Close()
|
||
|
||
### Built in activation strategies
|
||
|
||
The Go client comes with implementations for the built-in activation strategies provided by unleash.
|
||
|
||
- DefaultStrategy
|
||
- UserIdStrategy
|
||
- FlexibleRolloutStrategy
|
||
- GradualRolloutUserIdStrategy
|
||
- GradualRolloutSessionIdStrategy
|
||
- GradualRolloutRandomStrategy
|
||
- RemoteAddressStrategy
|
||
- ApplicationHostnameStrategy
|
||
|
||
Read more about the strategies in [activation-strategy.md]().
|
||
|
||
### Unleash context
|
||
|
||
In order to use some of the common activation strategies you must provide a [unleash-context](https://github.com/Unleash/unleash/blob/master/docs/unleash-context.md). This client SDK allows you to send in the unleash context as part of the `isEnabled` call:
|
||
|
||
```go
|
||
ctx := context.Context{
|
||
UserId: "123",
|
||
SessionId: "some-session-id",
|
||
RemoteAddress: "127.0.0.1",
|
||
}
|
||
|
||
unleash.IsEnabled("someToggle", unleash.WithContext(ctx))
|
||
```
|
||
|
||
Read more at [github.com/Unleash/unleash-client-go](https://github.com/Unleash/unleash-client-go)
|