Consul Client for Swift
ConsulSwift connects to http://localhost:8500
by default.
You can change the default behaviour by calling an other initializer.
let consul = Consul(url: otherBaseURL)
I'm sure I haven't implemented all API Endpoints Consul provides. Feel free to create a pull request or create an issue.
// get consul instance
let consul = Consul()
// get agent members
let members = consul.agentMembers()
// check members result
switch members {
case .success(let members):
// do whatever you like with members which is kind of [ConsulAgentMember]
case .failure(let error):
// handle error
}
// get consul instance
let consul = Consul()
// get agent members
consul.agentMembers { members in
// check members result
switch members {
case .success(let members):
// do whatever you like with members which is kind of [ConsulAgentMember]
case .failure(let error):
// handle error
}
}
Group | Endpoint | Route | Implemented |
---|---|---|---|
Agent - Base | List Members | GET /v1/agent/members | ✅ |
Read Configuration | GET /v1/agent/self | ✅ | |
Reload Agent | PUT /v1/agent/reload | ✅ | |
Enable Maintenance Mode | PUT /v1/agent/maintenance | ✅ | |
Join Agent | GET /v1/agent/join/:id | ✅ | |
Gracefull Leave + Shutdown | PUT /v1/agent/leave | ✅ | |
Force Leave + Shutdown | PUT /v1/agent/force-leave | ✅ | |
Agent - Checks | List Checks | GET /v1/agent/checks | ✅ |
Register Check | PUT /v1/agent/check/register | ✅ | |
Deregister Check | PUT /v1/agent/check/deregister/:id | ✅ | |
TLL Check Pass | GET /v1/agent/check/pass/:id | ✅ | |
TLL Check Warn | GET /v1/agent/check/warn/:id | ✅ | |
TLL Check Fail | GET /v1/agent/check/fail/:id | ✅ | |
TLL Check Update | GET /v1/agent/check/update/:id | ✅ | |
Agent - Services | List Services | GET /v1/agent/services | ✅ |
Register Service | PUT /v1/agent/service/register | ✅ | |
Deregister Service | PUT /v1/agent/service/deregister/:id | ✅ | |
Enable Maintenance Mode | PUT /v1/agent/service/maintenance/:id | ✅ | |
Catalog | List Datacenters | GET /v1/catalog/datacenters | ✅ |
List Nodes in a given DC | GET /v1/catalog/nodes | ✅ | |
List Services in a given DC | GET /v1/catalog/services | ✅ | |
List Nodes for Service | GET /v1/catalog/service/:id | ✅ | |
List Services for Node | GET /v1/catalog/node/:id | ✅ | |
Coordinates | Read WAN Coordinates | GET /v1/coordinates/datacenters | ❌ |
Read LAN Coordinates | GET /v1/coordinates/nodes | ❌ | |
Events | Fire Event | PUT /v1/event/fire/:name | ✅ |
List Events | GET /v1/event/list | ✅ | |
Health | List Checks for Node | GET /v1/health/node/:id | ✅ |
List Checks for Service | GET /v1/health/checks/:id | ❌ | |
List Nodes for Service | GET /v1/health/service/:id | ✅ | |
List Checks in State | GET /v1/health/state/:state | ✅ | |
KV Store | Read Key | GET /v1/kv/:key | ✅ |
Create/Update Key | PUT /v1/kv/:key | ✅ | |
Delete Key | DELETE /v2/kv/:key | ✅ | |
To test ConsulSwift on your local machine you need to start consul first
# start consul
consul agent -dev -datacenter fra1
# test
swift test
Please submit an issue on GitHub or contact me via Mail or Twitter.
This project is licensed under the terms of the MIT license. See the LICENSE file.