Go SDK
Follow these steps to get started with the Fours Go SDK.
Step 1: Install the SDK
To include the Fours SDK in your project, you can clone new release version of the SDK in your terminal:
git clone https://github.com/sugerio/suger-sdk-go.git
Put the package under your project folder and add the following in import:
import suger "github.com/sugerio/suger-sdk-go"
Step 2: Get an OAuth access token
The Fours API uses the OAuth 2.0 client-credentials flow. First, create an OAuth App in your organization settings to get a Client ID and Client Secret. Then exchange them for a short-lived (1 hour) bearer token:
import (
"encoding/json"
"net/http"
"net/url"
)
// getAccessToken exchanges OAuth App credentials for a bearer token.
// Cache the returned token in memory and request a new one when it expires.
func getAccessToken(clientID, clientSecret string) (string, error) {
resp, err := http.PostForm("https://apiv2.suger.cloud/oauth2/token", url.Values{
"grant_type": {"client_credentials"},
"client_id": {clientID},
"client_secret": {clientSecret},
"resource": {"https://api.suger.cloud"},
})
if err != nil {
return "", err
}
defer resp.Body.Close()
var token struct {
AccessToken string `json:"access_token"`
ExpiresIn int `json:"expires_in"`
}
if err := json.NewDecoder(resp.Body).Decode(&token); err != nil {
return "", err
}
return token.AccessToken, nil
}
The resource=https://api.suger.cloud parameter is required — it scopes the
issued JWT to the Fours API. See API Access
for the full token exchange, caching, and rotation details.
Step 3: Set up your configuration and create the ApiClient
Create a configuration and attach the bearer token. APIKeyAuth writes the
Authorization header verbatim, so pass the OAuth token as Bearer <token>:
configuration := suger.NewConfiguration()
configuration.Servers = suger.ServerConfigurations{
{
URL: "https://api.suger.cloud",
Description: "No description provided",
},
}
apiClient := suger.NewAPIClient(configuration)
accessToken, err := getAccessToken("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
if err != nil {
// handle error
}
auth := context.WithValue(
context.Background(),
suger.ContextAPIKeys,
map[string]suger.APIKey{
"APIKeyAuth": {Key: "Bearer " + accessToken},
},
)
Step 4: Use the Client
Now that you have your client set up, you can call Fours services. Here’s a simple example of how to make a service call:
var orgId = "your_org_id"
var offerId = "your_offer_id"
execute, response, err := apiClient.OfferAPI.GetOffer(auth, orgId, offerId).Execute()
Legacy authentication (API key)
To authenticate an existing integration with an API key, pass it as Key <key>
instead of a bearer token:
auth := context.WithValue(
context.Background(),
suger.ContextAPIKeys,
map[string]suger.APIKey{
"APIKeyAuth": {Key: "Key " + "your_api_key"},
},
)
Conclusion
You are now ready to use the Fours Go SDK in your application! For more detailed information and advanced usage, please refer to the official documentation.
Spotted something wrong or out of date on this page? Tell us and we'll correct it.