consul/api
cskh 2f13f75d18
chore: replace hardcoded node name with a constant (#16692)
2023-03-20 16:18:59 -04:00
..
watch Regenerate files according to 1.19.2 formatter 2022-10-24 16:12:08 -04:00
.golangci.yml
README.md Update the README for the Consul API (#15936) 2023-01-06 21:10:56 +00:00
acl.go Update token language to distinguish Accessor and Secret ID usage (#16044) 2023-02-07 12:26:30 -06:00
acl_test.go Synthesize anonymous token pre-bootstrap when needed (#16200) 2023-02-09 20:34:02 +00:00
agent.go allow setting locality on services and nodes (#16581) 2023-03-10 09:36:15 -05:00
agent_test.go allow setting locality on services and nodes (#16581) 2023-03-10 09:36:15 -05:00
api.go Add the `operator usage instances` command and api endpoint (#16205) 2023-02-08 12:07:21 -08:00
api_test.go allow setting locality on services and nodes (#16581) 2023-03-10 09:36:15 -05:00
catalog.go allow setting locality on services and nodes (#16581) 2023-03-10 09:36:15 -05:00
catalog_test.go allow setting locality on services and nodes (#16581) 2023-03-10 09:36:15 -05:00
config_entry.go net 2731 ip config entry OSS version (#16642) 2023-03-15 11:21:24 -07:00
config_entry_discoverychain.go add sameness group support to service resolver failover and redirects (#16664) 2023-03-17 10:48:06 -04:00
config_entry_discoverychain_test.go Add the ability to retry on reset connection to service-routers (#12890) 2022-10-05 13:06:44 -04:00
config_entry_exports.go Update api package exported services comment. (#15285) 2022-11-08 09:26:07 -05:00
config_entry_exports_test.go Rename `PeerName` to `Peer` on prepared queries and exported services (#14854) 2022-10-04 14:46:15 -04:00
config_entry_gateways.go [API Gateway] Validate listener name is not empty (#16340) 2023-02-21 14:12:19 -05:00
config_entry_gateways_test.go feat(ingress-gateway): support outlier detection of upstream service for ingress gateway (#15614) 2022-12-13 11:51:37 -05:00
config_entry_inline_certificate.go Fix infinite recursion in inline-certificate config entry (#16276) 2023-02-15 13:49:34 -06:00
config_entry_inline_certificate_test.go Add stricter validation and some normalization code for API Gateway ConfigEntries (#16304) 2023-02-17 19:22:01 +00:00
config_entry_intentions.go Add SourcePeer fields to relevant Intentions types (#13390) 2022-06-08 13:24:10 -04:00
config_entry_intentions_test.go
config_entry_mesh.go feat: add PeerThroughMeshGateways to mesh config 2022-09-13 17:19:54 -04:00
config_entry_rate_limit_ip.go net 2731 ip config entry OSS version (#16642) 2023-03-15 11:21:24 -07:00
config_entry_routes.go [API Gateway] Various fixes for Config Entry fields (#16347) 2023-02-22 04:02:04 +00:00
config_entry_samness_group.go Add sameness-group configuration entry. (#16608) 2023-03-13 16:19:11 -05:00
config_entry_status.go Add additional controller implementations (#16188) 2023-02-08 14:50:17 -05:00
config_entry_test.go Change field to pointer so it will be parsed as nil (#15831) 2022-12-19 10:25:36 -05:00
connect.go Allow HCP metrics collection for Envoy proxies 2023-03-10 13:52:54 -07:00
connect_ca.go add root_cert_ttl option for consul connect, vault ca providers (#11428) 2021-11-02 11:02:10 -07:00
connect_ca_test.go update config defaults, add docs (#15302) 2022-11-09 09:29:55 -08:00
connect_intention.go Add SourcePeer fields to relevant Intentions types (#13390) 2022-06-08 13:24:10 -04:00
connect_intention_test.go Support partitions in connect expose cmd 2021-11-12 14:45:32 -07:00
coordinate.go Remove incorrect usage of url.PathEscape (#12184) 2022-01-25 12:15:06 -05:00
coordinate_test.go fix(api): OSS<->ENT exported service incompatibility 2022-09-02 12:07:02 -04:00
debug.go Allow consul debug on non-ACL consul servers (#15155) 2022-10-27 09:25:18 -04:00
debug_test.go
discovery_chain.go Add support for failover policies (#16505) 2023-03-03 11:12:38 -05:00
discovery_chain_test.go xds: ensure that all connect timeout configs can apply equally to tproxy direct dial connections (#12711) 2022-04-07 16:58:21 -05:00
event.go Refactor requireHttpCodes for segregated error handling (#11287) 2021-10-28 12:24:23 -04:00
event_test.go
go.mod Bump submodules from latest 1.15.1 patch release (#16578) 2023-03-08 14:37:50 -06:00
go.sum Fix SDK to support older versions of Consul. (#15423) 2022-11-18 10:32:01 -06:00
health.go Merge pull request #13388 from deblasis/feature/health-checks_windows_service 2022-10-17 09:26:19 -04:00
health_test.go chore: replace hardcoded node name with a constant (#16692) 2023-03-20 16:18:59 -04:00
kv.go KV refactoring, part 2 (#11512) 2021-11-08 11:43:21 -05:00
kv_test.go
lock.go
lock_test.go
mock_api_test.go removes ioutil usage everywhere which was deprecated in go1.16 (#15297) 2022-11-10 10:26:01 -06:00
namespace.go remove gogo from acl protobufs 2022-03-28 16:20:56 -04:00
namespace_test.go re-run gofmt on 1.17 (#11579) 2021-11-16 12:04:01 -06:00
operator.go
operator_area.go Refactor requireHttpCodes for segregated error handling (#11287) 2021-10-28 12:24:23 -04:00
operator_autopilot.go Refactor requireHttpCodes for segregated error handling (#11287) 2021-10-28 12:24:23 -04:00
operator_autopilot_test.go add StatusError to api package (#11054) 2021-09-20 14:04:13 -07:00
operator_keyring.go partitions: various refactors to support partitioning the serf LAN pool (#11568) 2021-11-15 09:51:14 -06:00
operator_keyring_test.go
operator_license.go add missing field to oss struct (#16401) 2023-02-23 19:06:09 +00:00
operator_raft.go Leadership transfer cmd (#14132) 2022-11-14 15:35:12 -05:00
operator_raft_test.go Leadership transfer cmd (#14132) 2022-11-14 15:35:12 -05:00
operator_segment.go
operator_usage.go Add the `operator usage instances` command and api endpoint (#16205) 2023-02-08 12:07:21 -08:00
operator_usage_test.go Add the `operator usage instances` command and api endpoint (#16205) 2023-02-08 12:07:21 -08:00
oss_test.go fix(api): OSS<->ENT exported service incompatibility 2022-09-02 12:07:02 -04:00
partition.go Clarify feature name in partition docstring 2021-12-03 17:05:17 -07:00
peering.go allow setting locality on services and nodes (#16581) 2023-03-10 09:36:15 -05:00
peering_test.go Bring back parameter ServerExternalAddresses in GenerateToken endpoint (#15267) 2022-11-08 14:55:18 -06:00
prepared_query.go Remove empty tags 2 (#16113) 2023-02-06 11:12:43 -08:00
prepared_query_test.go Remove empty tags 2 (#16113) 2023-02-06 11:12:43 -08:00
raw.go
semaphore.go
semaphore_test.go
session.go api: properly close the response body 2021-06-14 18:52:59 -04:00
session_test.go
snapshot.go Refactor requireHttpCodes for segregated error handling (#11287) 2021-10-28 12:24:23 -04:00
snapshot_test.go
status.go Refactor requireHttpCodes for segregated error handling (#11287) 2021-10-28 12:24:23 -04:00
status_test.go bulk rewrite using this script 2022-01-20 10:46:23 -06:00
txn.go Add kv txn get-not-exists operation. 2022-09-06 10:28:59 -05:00
txn_test.go fix(api): OSS<->ENT exported service incompatibility 2022-09-02 12:07:02 -04:00

README.md

Consul API Client

This package provides the api package which provides programmatic access to the full Consul API.

The full documentation is available on Godoc.

Usage

Below is an example of using the Consul client. To run the example, you must first install Consul and Go.

To run the client API, create a new Go module.

go mod init consul-demo

Copy the example code into a file called main.go in the directory where the module is defined. As seen in the example, the Consul API is often imported with the alias capi.

package main

import (
	"fmt"

	capi "github.com/hashicorp/consul/api"
)

func main() {
	// Get a new client
	client, err := capi.NewClient(capi.DefaultConfig())
	if err != nil {
		panic(err)
	}

	// Get a handle to the KV API
	kv := client.KV()

	// PUT a new KV pair
	p := &capi.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)
}

Install the Consul API dependency with go mod tidy.

In a separate terminal window, start a local Consul server.

consul agent -dev -node machine

Run the example.

go run .

You should get the following result printed to the terminal.

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