Docs/ API 参考/ 完整参考

完整 API 参考

完整的 sh0 API,180+ 个端点、交互式浏览器和可下载的 OpenAPI 规范,用于代码生成。

交互式 API 浏览器

探索 sh0 API 最简单的方式是通过交互式 API 浏览器,可在以下位置访问:

  • 控制台:在 sh0 控制台的侧边栏中导航至 API Docs
  • 网站:访问 sh0 网站上的 /api
显示端点列表及请求/响应预览的交互式 API 浏览器

浏览器允许您:

  • 按类别浏览所有端点
  • 查看请求参数、头和请求体 Schema
  • 查看每个端点的示例响应
  • 直接从浏览器尝试端点(连接到 sh0 实例时)
  • 复制任意端点的 curl 命令
Tip
API 浏览器使用 utoipa 从 OpenAPI 规范自动生成。它始终与您 sh0 版本中的实际 API 端点保持同步。

OpenAPI 规范

sh0 暴露了一个完整的 OpenAPI 3.1 规范,描述每个端点、参数、请求体和响应类型。规范使用 utoipa 从 Rust 源代码自动生成,确保始终准确和最新。

规范可在以下位置获取:

Terminal
# JSON format
curl https://your-server:9000/api/openapi.json

# YAML format
curl https://your-server:9000/api/openapi.yaml
在文档查看器中渲染的 OpenAPI 规范

端点分组

API 按逻辑分组。以下是主要端点类别的概述:

应用

管理应用生命周期——创建、配置、启动、停止、重启和删除应用。

方法端点描述
GET/api/apps列出所有应用
POST/api/apps创建新应用
GET/api/apps/:id获取应用详情
PUT/api/apps/:id更新应用配置
DELETE/api/apps/:id删除应用
POST/api/apps/:id/restart重启应用

部署

触发部署、查看构建日志、回滚和管理部署历史。

方法端点描述
POST/api/apps/:id/deploy触发新的部署
GET/api/apps/:id/deployments列出部署历史
POST/api/apps/:id/rollback回滚到之前的部署

域名与 SSL

添加自定义域名、验证 DNS 和管理 SSL 证书。

方法端点描述
GET/api/domains列出所有域名
POST/api/domains添加自定义域名
POST/api/domains/verify验证域名 DNS
GET/api/certificates列出 SSL 证书

数据库

配置数据库、管理备份和获取连接字符串。

方法端点描述
POST/api/databases创建新数据库
GET/api/databases/:id获取数据库详情 + 连接字符串
POST/api/databases/:id/backup触发手动备份
POST/api/databases/:id/restore从备份恢复

其他端点

API 还涵盖以下资源类别:

类别端点描述
环境变量8 个端点环境变量 CRUD、批量导入、密钥管理
存储与挂载6 个端点卷管理、存储提供商
伸缩4 个端点手动伸缩、自动伸缩规则
监控12 个端点指标、告警、正常运行时间检查、健康状态
定时任务5 个端点调度、列出、更新、删除、运行定时任务
团队与认证15 个端点登录、双因素认证、会话、团队成员、API 密钥
SSH 密钥4 个端点添加、列出、删除 SSH 密钥
节点8 个端点多服务器管理、节点健康
服务8 个端点子服务 URL、状态、重启、停止、启动、凭证
备份11 个端点触发、列出、恢复、下载备份,管理计划任务
证书6 个端点SSL 证书管理、CSR 生成、SSL 模式
项目11 个端点项目增删改查、成员管理、审计日志
重定向5 个端点URL 重定向规则的创建、更新、启停、删除
预览环境4 个端点PR 预览部署、设置、清理
设置6 个端点服务器配置、域名、Cloudflare、ACME、DNS
模板5 个端点浏览并从 170+ 个模板部署
Webhook6 个端点Git Webhook、部署钩子、通知钩子
API 浏览器中的端点分组概览

下载 OpenAPI 规范

您可以下载 OpenAPI 规范,用于文档工具、测试框架或代码生成器。

Terminal
# Download as JSON
curl -o sh0-openapi.json https://your-server:9000/api/openapi.json

# Download as YAML
curl -o sh0-openapi.yaml https://your-server:9000/api/openapi.yaml

规范文件可以导入以下工具:

  • Postman:导入规范以创建预配置所有端点的集合。
  • Insomnia:导入以创建交互式 API 工作区。
  • Swagger UI:托管您自己的交互式 API 文档。
  • Redocly:生成精美的 API 文档。
导入 Postman 的 OpenAPI 规范

配合代码生成器使用

OpenAPI 规范可以与代码生成器配合使用,以任何语言创建类型化的 API 客户端:

TypeScript 客户端(使用 openapi-typescript):

Terminal
npx openapi-typescript https://your-server:9000/api/openapi.json \
  -o ./src/lib/api/sh0-types.ts

Python 客户端(使用 openapi-python-client):

Terminal
pip install openapi-python-client
openapi-python-client generate \
  --url https://your-server:9000/api/openapi.json

Go 客户端(使用 oapi-codegen):

Terminal
go install github.com/deepmap/oapi-codegen/v2/cmd/oapi-codegen@latest
oapi-codegen -package sh0 sh0-openapi.json > sh0_client.go
Tip
生成的客户端为您的 IDE 提供完整的类型安全和自动补全。它们在构建与 sh0 实例交互的 CI/CD 流水线或自定义自动化工具时特别有用。
VS Code 中生成的 API 类型的 TypeScript 自动补全