用于 Swift 的 Consul 客户端
默认情况下,ConsulSwift 连接到 https://:8500
。
您可以通过调用其他初始化器来更改默认行为。
let consul = Consul(url: otherBaseURL)
我确信我没有实现 Consul 提供的所有 API 端点。 欢迎创建 pull request 或创建 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
}
}
分组 | 端点 | 路由 | 已实现 |
---|---|---|---|
Agent - 基础 | 列出成员 | GET /v1/agent/members | ✅ |
读取配置 | GET /v1/agent/self | ✅ | |
重新加载 Agent | PUT /v1/agent/reload | ✅ | |
启用维护模式 | PUT /v1/agent/maintenance | ✅ | |
加入 Agent | GET /v1/agent/join/:id | ✅ | |
优雅离开 + 关闭 | PUT /v1/agent/leave | ✅ | |
强制离开 + 关闭 | PUT /v1/agent/force-leave | ✅ | |
Agent - 检查 | 列出检查 | GET /v1/agent/checks | ✅ |
注册检查 | PUT /v1/agent/check/register | ✅ | |
注销检查 | PUT /v1/agent/check/deregister/:id | ✅ | |
TLL 检查通过 | GET /v1/agent/check/pass/:id | ✅ | |
TLL 检查警告 | GET /v1/agent/check/warn/:id | ✅ | |
TLL 检查失败 | GET /v1/agent/check/fail/:id | ✅ | |
TLL 检查更新 | GET /v1/agent/check/update/:id | ✅ | |
Agent - 服务 | 列出服务 | GET /v1/agent/services | ✅ |
注册服务 | PUT /v1/agent/service/register | ✅ | |
注销服务 | PUT /v1/agent/service/deregister/:id | ✅ | |
启用维护模式 | PUT /v1/agent/service/maintenance/:id | ✅ | |
Catalog | 列出数据中心 | GET /v1/catalog/datacenters | ✅ |
列出给定 DC 中的节点 | GET /v1/catalog/nodes | ✅ | |
列出给定 DC 中的服务 | GET /v1/catalog/services | ✅ | |
列出服务的节点 | GET /v1/catalog/service/:id | ✅ | |
列出节点的可用服务 | GET /v1/catalog/node/:id | ✅ | |
坐标 | 读取 WAN 坐标 | GET /v1/coordinates/datacenters | ❌ |
读取 LAN 坐标 | GET /v1/coordinates/nodes | ❌ | |
事件 | 触发事件 | PUT /v1/event/fire/:name | ✅ |
列出事件 | GET /v1/event/list | ✅ | |
健康 | 列出节点的检查 | GET /v1/health/node/:id | ✅ |
列出服务的检查 | GET /v1/health/checks/:id | ❌ | |
列出服务的节点 | GET /v1/health/service/:id | ✅ | |
列出处于某种状态的检查 | GET /v1/health/state/:state | ✅ | |
KV 存储 | 读取 Key | GET /v1/kv/:key | ✅ |
创建/更新 Key | PUT /v1/kv/:key | ✅ | |
删除 Key | DELETE /v2/kv/:key | ✅ | |
要在本地机器上测试 ConsulSwift,您需要先启动 Consul
# start consul
consul agent -dev -datacenter fra1
# test
swift test
请在 GitHub 上提交 issue,或者通过邮件或 Twitter 联系我。
此项目根据 MIT 许可证的条款获得许可。 请参阅 LICENSE 文件。