From 3fdad485ea243a3ba68c1e10aef9b93051c35777 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Tue, 9 Mar 2021 22:19:03 +0100 Subject: [PATCH] chore: Update Go SDK getting started --- docs/sdks/go.md | 83 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 75 insertions(+), 8 deletions(-) diff --git a/docs/sdks/go.md b/docs/sdks/go.md index 7f9f3a38ff..8d83f79c4f 100644 --- a/docs/sdks/go.md +++ b/docs/sdks/go.md @@ -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(""), - unleash.WithCustomHeaders(http.Header{"Authorization": {""}}), - ) + unleash.Initialize( + unleash.WithListener(&unleash.DebugListener{}), + unleash.WithAppName("my-application"), + unleash.WithUrl("http://unleash.herokuapp.com/api/"), + unleash.WithCustomHeaders(http.Header{"Authorization": {""}}), + ) } ``` + +### 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)