mirror of
https://github.com/Unleash/unleash.git
synced 2025-01-25 00:07:47 +01:00
chore: Update Go SDK getting started
This commit is contained in:
parent
0f60fd075a
commit
3fdad485ea
@ -3,18 +3,85 @@ id: go_sdk
|
||||
title: GO SDK
|
||||
---
|
||||
|
||||
### 1. Install unleash-client-go
|
||||
|
||||
```golang
|
||||
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"
|
||||
"github.com/Unleash/unleash-client-go/v3"
|
||||
)
|
||||
|
||||
|
||||
func init() {
|
||||
unleash.Initialize(
|
||||
unleash.WithAppName("my-node-app"),
|
||||
unleash.WithUrl("<API url>"),
|
||||
unleash.WithCustomHeaders(http.Header{"Authorization": {"<Client secret>"}}),
|
||||
)
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user