1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-18 20:09:08 +02:00
unleash.unleash/docs/sdks/go.md
Ivar Conradi Østhus b5a36a6d42
chore: fix SDK docs
2021-05-04 16:08:21 +02:00

90 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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)