2015-01-06 18:40:00 +00:00
|
|
|
Consul API client
|
|
|
|
=================
|
|
|
|
|
|
|
|
This package provides the `api` package which attempts to
|
|
|
|
provide programmatic access to the full Consul API.
|
|
|
|
|
2015-11-29 04:04:29 +00:00
|
|
|
Currently, all of the Consul APIs included in version 0.6.0 are supported.
|
2015-01-06 18:40:00 +00:00
|
|
|
|
|
|
|
Documentation
|
|
|
|
=============
|
|
|
|
|
2016-01-13 22:44:01 +00:00
|
|
|
The full documentation is available on [Godoc](https://godoc.org/github.com/hashicorp/consul/api)
|
2015-01-06 18:40:00 +00:00
|
|
|
|
|
|
|
Usage
|
|
|
|
=====
|
|
|
|
|
|
|
|
Below is an example of using the Consul client:
|
|
|
|
|
|
|
|
```go
|
2018-07-30 11:48:19 +00:00
|
|
|
package main
|
2015-10-23 19:20:01 +00:00
|
|
|
|
2018-07-30 11:48:19 +00:00
|
|
|
import "github.com/hashicorp/consul/api"
|
|
|
|
import "fmt"
|
2015-01-06 18:40:00 +00:00
|
|
|
|
2018-07-30 11:48:19 +00:00
|
|
|
func main() {
|
|
|
|
// Get a new client
|
|
|
|
client, err := api.NewClient(api.DefaultConfig())
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Get a handle to the KV API
|
|
|
|
kv := client.KV()
|
2015-01-06 18:40:00 +00:00
|
|
|
|
2018-07-30 11:48:19 +00:00
|
|
|
// PUT a new KV pair
|
|
|
|
p := &api.KVPair{Key: "REDIS_MAXCLIENTS", Value: []byte("1000")}
|
|
|
|
_, err = kv.Put(p, nil)
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Lookup the pair
|
|
|
|
pair, _, err := kv.Get("REDIS_MAXCLIENTS", nil)
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
fmt.Printf("KV: %v %s\n", pair.Key, pair.Value)
|
2015-01-06 18:40:00 +00:00
|
|
|
}
|
2018-07-30 11:48:19 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
To run this example, start a Consul server:
|
2015-01-06 18:40:00 +00:00
|
|
|
|
2018-07-30 11:48:19 +00:00
|
|
|
```bash
|
|
|
|
consul agent -dev
|
2015-01-06 18:40:00 +00:00
|
|
|
```
|
2018-07-30 11:48:19 +00:00
|
|
|
|
|
|
|
Copy the code above into a file such as `main.go`.
|
|
|
|
|
|
|
|
Install and run. You'll see a key (`REDIS_MAXCLIENTS`) and value (`1000`) printed.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ go get
|
|
|
|
$ go run main.go
|
|
|
|
KV: REDIS_MAXCLIENTS 1000
|
|
|
|
```
|
|
|
|
|
|
|
|
After running the code, you can also view the values in the Consul UI on your local machine at http://localhost:8500/ui/dc1/kv
|