netbox provides an API 2.0 client for netbox-community's NetBox
IPAM and DCIM service.
This package assumes you are using NetBox 2.0, as the NetBox 1.0 API no longer exists.
Using the client
github.com/go-netbox/netbox package has some convenience functions for creating clients with the most common
configurations you are likely to need while connecting to NetBox.
NewNetboxAt allows you to specify a hostname
(including port, if you need it), and
NewNetboxWithAPIKey allows you to specify both a hostname:port and API token.
import ( "github.com/netbox-community/go-netbox/netbox" ) ... c := netbox.NewNetboxAt("your.netbox.host:8000") // OR c := netbox.NewNetboxWithAPIKey("your.netbox.host:8000", "your_netbox_token")
If you specify the API key, you do not need to pass an additional
authInfo to operations that need authentication, and
Go Module support
go get github.com/netbox-community/go-netbox
More complex client configuration
The client is generated using go-swagger. This means the generated client makes use of github.com/go-openapi/runtime/client. If you need a more complex configuration, it is probably possible with a combination of this generated client and the runtime options.
The godocs for the go-openapi/runtime/client module explain
the client options in detail, including different authentication and debugging options. One thing I want to flag because
it is so useful: setting the
DEBUG environment variable will dump all requests to standard out.
Regenerating the client
To regenerate the client with a new or different swagger schema, first clean the existing client, then replace swagger.json and finally re-generate:
make clean cp new_swagger_file.json swagger.json make generate