Skip to main content

要求

  • Go 1.24 或更新版本
  • 零外部依赖 —— SDK 仅基于 Go 标准库构建
  • 一个有效的 API 密钥 —— 可在 Square Cloud 控制台My Account → Regenerate API/CLI KEY 中申请

安装

该模块提供两个包:

实例化客户端

rest.NewClient(token, opts...) 构建底层 HTTP 客户端;rest.New(client) 将其包装为 rest.Rest,即暴露所有资源的接口。始终 defer client.Close() 以释放空闲连接。

客户端配置(ConfigOpt

rest.NewClient 在 token 之后接受可选的 ConfigOpt

模块

rest.Rest 按资源领域内嵌了一个接口,外加本页记录的用户和服务方法:

获取已认证用户

api.SelfUser() 返回一个包含账户详情和当前套餐的 squarecloud.User

列出你的应用和数据库

api.GetApplications()api.GetDatabases() 通过 /users/me endpoint 列出你拥有的一切,返回精简的 squarecloud.UserApplication / squarecloud.UserDatabase 描述符:
要获取单个资源的完整记录,请使用 GetApplication / GetDatabase —— 参见管理应用数据库

列出 snapshot 历史(账户级)

api.UserSnapshots(scope) 返回你在给定领域拥有的所有 snapshot:
关于 snapshot 载荷的详情,请参阅 Snapshots

平台状态

api.ServiceStatus() 暴露聚合后的平台健康状况(与公开状态页展示的数据相同)。
与大多数 v2 endpoint 不同,此路由不会将其载荷包裹在标准的 { status, code, response } 信封中 —— 它直接以 { status, message } 响应。

请求选项

每个方法都接受末尾的 ...rest.RequestOpt,用于自定义单个请求:

错误处理

任何非 2xx 响应都会以 *rest.APIError 返回,暴露 StatusCodeCodeMessage。使用惯用的 errors.As 解包:
两个辅助函数简化了常见检查:
  • rest.ErrorCode(err) string —— 返回 API 错误代码(当错误不是 *rest.APIError 时返回 ""
  • rest.IsRateLimit(err) bool —— 报告该错误是否属于任一速率限制代码(KEEP_CALMRATE_LIMITRATE_LIMIT_EXCEEDEDRATELIMITDELAY_NOW
这些错误代码与 @squarecloud/api-types 使用的相同 —— 参见 JS SDK 参考中的完整代码表