ConsulSwift

Codacy Badge Twitter: @cpageler93 License Consul

用于 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 文件。