mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +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
 | 
					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 (
 | 
					import (
 | 
				
			||||||
	"github.com/Unleash/unleash-client-go/v3"
 | 
						"github.com/Unleash/unleash-client-go/v3"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	unleash.Initialize(
 | 
						unleash.Initialize(
 | 
				
			||||||
    unleash.WithAppName("my-node-app"),
 | 
							unleash.WithListener(&unleash.DebugListener{}),
 | 
				
			||||||
    unleash.WithUrl("<API url>"),
 | 
							unleash.WithAppName("my-application"),
 | 
				
			||||||
 | 
							unleash.WithUrl("http://unleash.herokuapp.com/api/"),
 | 
				
			||||||
        unleash.WithCustomHeaders(http.Header{"Authorization": {"<Client secret>"}}),
 | 
					        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)
 | 
					Read more at [github.com/Unleash/unleash-client-go](https://github.com/Unleash/unleash-client-go)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user