mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
new provider module HEXONET (#373)
This commit is contained in:
committed by
Craig Peterson
parent
402fc449e2
commit
3e5d223675
128
vendor/github.com/hexonet/go-sdk/README.md
generated
vendored
Normal file
128
vendor/github.com/hexonet/go-sdk/README.md
generated
vendored
Normal file
@@ -0,0 +1,128 @@
|
||||
# go-sdk
|
||||
|
||||
[](https://godoc.org/github.com/hexonet/go-sdk)
|
||||
[](https://goreportcard.com/report/github.com/hexonet/go-sdk)
|
||||
[](https://cover.run/go?tag=golang-1.10&repo=github.com%2Fhexonet%2Fgo-sdk)
|
||||
[](https://hexonet-sdk.slack.com/messages/CBFHLTL2X)
|
||||
|
||||
This module is a connector library for the insanely fast HEXONET Backend API. For further informations visit our [homepage](http://hexonet.net) and do not hesitate to [contact us](https://www.hexonet.net/contact).
|
||||
|
||||
## Resources
|
||||
|
||||
* [Usage Guide](https://github.com/hexonet/go-sdk/blob/master/README.md#how-to-use-this-module-in-your-project)
|
||||
* [SDK Documenation](https://godoc.org/github.com/hexonet/go-sdk)
|
||||
* [HEXONET Backend API Documentation](https://github.com/hexonet/hexonet-api-documentation/tree/master/API)
|
||||
* [Release Notes](https://github.com/hexonet/go-sdk/releases)
|
||||
* [Development Guide](https://github.com/hexonet/go-sdk/wiki/Development-Guide)
|
||||
|
||||
## 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](https://github.com/hexonet/go-sdk-demo).
|
||||
|
||||
### Requirements
|
||||
|
||||
* Installed [GO/GOLANG](https://golang.org/doc/install). Restart your machine after installing GO.
|
||||
* Installed [govendor](https://github.com/kardianos/govendor).
|
||||
|
||||
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).
|
||||
|
||||
```bash
|
||||
export GOPATH=$HOME/go
|
||||
export PATH=$PATH:$GOPATH/bin
|
||||
```
|
||||
|
||||
Then reload the profile configuration by `source ~/.profile`.
|
||||
|
||||
### Using govendor
|
||||
|
||||
Use [govendor](https://github.com/kardianos/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](https://github.com/hexonet/go-sdk/releases). 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](https://github.com/kardianos/govendor/wiki/Govendor-CheatSheet) and also the [developer guide](https://github.com/kardianos/govendor/blob/master/doc/dev-guide.md).
|
||||
|
||||
### Usage Examples
|
||||
|
||||
Please have an eye on our [HEXONET Backend API documentation](https://github.com/hexonet/hexonet-api-documentation/tree/master/API). Here you can find information on available Commands and their response data.
|
||||
|
||||
#### Session based API Communication
|
||||
|
||||
```go
|
||||
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
|
||||
|
||||
```go
|
||||
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](https://github.com/hexonet/go-sdk/wiki/Development-Guide) for details on our code of conduct, and the process for submitting pull requests to us.
|
||||
|
||||
## Authors
|
||||
|
||||
* **Kai Schwarz** - *lead development* - [PapaKai](https://github.com/papakai)
|
||||
|
||||
See also the list of [contributors](https://github.com/hexonet/go-sdk/graphs/contributors) who participated in this project.
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
Reference in New Issue
Block a user