dnscontrol/vendor/github.com/hexonet/go-sdk
2018-08-30 09:03:51 -04:00
..
client new provider module HEXONET (#373) 2018-08-30 08:54:42 -04:00
response new provider module HEXONET (#373) 2018-08-30 08:54:42 -04:00
apiconnector.go new provider module HEXONET (#373) 2018-08-30 08:54:42 -04:00
CONTRIBUTING.md new provider module HEXONET (#373) 2018-08-30 08:54:42 -04:00
HISTORY.md new provider module HEXONET (#373) 2018-08-30 08:54:42 -04:00
LICENSE new provider module HEXONET (#373) 2018-08-30 08:54:42 -04:00
README.md new provider module HEXONET (#373) 2018-08-30 08:54:42 -04:00

go-sdk

GoDoc Go Report Card cover.run Slack Widget

This module is a connector library for the insanely fast HEXONET Backend API. For further informations visit our homepage and do not hesitate to contact us.

Resources

How to use this module in your project

We have also a demo app available showing how to integrate and use our SDK. See here.

Requirements

NOTE: Make sure you add the go binary path to your PATH environment variable. Add the below lines for a standard installation into your profile configuration file (~/.profile).

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

Then reload the profile configuration by source ~/.profile.

Using govendor

Use govendor for the dependency installation by govendor fetch -tree github.com/hexonet/go-sdk@<tag id> where tag id corresponds to a release version tag. You can update this dependency later on by govendor sync github.com/hexonet/go-sdk@<new tag id>. The dependencies will be installed in your project's subfolder "vendor". Import the module in your project as shown in the examples below.

For more details on govendor, please read the CheatSheet and also the developer guide.

Usage Examples

Please have an eye on our HEXONET Backend API documentation. Here you can find information on available Commands and their response data.

Session based API Communication

package main

import (
    "github.com/hexonet/go-sdk/client"
    "fmt"
)

func main() {
    cl := client.NewClient()
    cl.SetCredentials("test.user", "test.passw0rd", "")//username, password, otp code (2FA)
    cl.UseOTESystem()
    
    // use this to provide your outgoing ip address for api communication
    // to be used in case you have ip filter settings active
    // cl.SetIPAddress("174.21.132.16");
    
    // cl.EnableDebugMode() // to activate debug outputs of the API communication
    r := cl.Login()
    if r.IsSuccess() {
        fmt.Println("Login succeeded.")
        cmd := map[string]string{
            "COMMAND": "StatusAccount",
        }
        r = cl.Request(cmd)
        if r.IsSuccess() {
            fmt.Println("Command succeeded.")
            r = cl.Logout()
            if r.IsSuccess() {
                fmt.Println("Logout succeeded.")
            } else {
                fmt.Println("Logout failed.")
            }
        } else {
            fmt.Println("Command failed.")
        }
    } else {
        fmt.Println("Login failed.")
    }
}

Sessionless API Communication

    package main

import (
    "github.com/hexonet/go-sdk/client"
    "fmt"
)

func main() {
    cl := client.NewClient()
    cl.SetCredentials("test.user", "test.passw0rd", "")
    cl.UseOTESystem()
    cmd := map[string]string{
        "COMMAND": "StatusAccount",
    }
    r := cl.Request(cmd)
    if r.IsSuccess() {
        fmt.Println("Command succeeded.")
    } else {
        fmt.Println("Command failed.")
    }
}

Contributing

Please read our development guide for details on our code of conduct, and the process for submitting pull requests to us.

Authors

  • Kai Schwarz - lead development - PapaKai

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE file for details.