mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +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)
 |