sdk-go

module
v1.17.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 13, 2023 License: MIT

README

sdk-go

This is an SDK for interacting with ANS APIs from Go applications.

You should refer to the Getting Started section of the API documentation before proceeding below

Basic usage

First we'll instantiate a Client struct with an API key:

c := client.NewClient(connection.NewAPIKeyCredentialsAPIConnection("myapikey"))

And away we go:

service := c.SafeDNSService()
zone, err := service.GetZone("ans.co.uk")

fmt.Printf("Zone: %s", zone.Name)

Services

Resources/models are separated into separate service packages, found within pkg/service.

Config

The SDK has default implementation for managing config, which is utilised by several utilities such as the CLI and Terraform providers. This config can be defined both within config files and environment variables.

There is a default connection factory included (pkg/connection/factory.go) which utilises the config package, which can be used in your applications as below:

conn, err := connection.NewDefaultConnectionFactory().NewConnection()
if err != nil {
    panic(err)
}

service := client.NewClient(conn).SafeDNSService()
Configuration File

The configuration file is read from $HOME/.ans{.extension} by default (extension being one of the viper supported formats such as yml, yaml, json, toml etc.)

Schema
  • api_key: (String) Required API key for authenticating with API
  • api_timeout_seconds: (int) HTTP timeout for API requests. Default: 90
  • api_uri: (string) API URI. Default: api.ukfast.io
  • api_insecure: (bool) Specifies to ignore API certificate validation checks
Contexts

Contexts can be defined in the config file to allow for different sets of configuration to be defined:

contexts:
  testcontext1:
    api_key: mykey1
  testcontext2:
    api_key: mykey2
current_context: testcontext1
Environment variables

These variables match the naming of directives in the configuration file defined above, however are uppercased and prefixed with ANS_, such as ANS_API_KEY

Precedence

Values defined in the configuration file take precedence over environment variables

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL