2.3 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	| id | title | 
|---|---|
| go_sdk | 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:
go get github.com/Unleash/unleash-client-go/v3
If you are still using Unleash Server v2.x.x, then you should use:
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:
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.
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. This client SDK allows you to send in the unleash context as part of the isEnabled call:
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