跳转到内容
Rayrun
登录注册

入向发布

发布沙箱内端口(公开 URL)。 完整参数、请求 / 响应 schema 见下方(本页只渲染该组):

v0.1.0
OpenAPI 3.0.3

Rayrun API

Rayrun REST API —— 控制台与命令行(rayrun CLI)的统一接口,也是自托管部署的 第三方集成的接入点。共 13 组、93 个端点(分组见左侧栏或「介绍」页的接口一览)。 基地址与部署同源:<实例地址>/v1(如 https://rayrun.example.com/v1)。 认证:Bearer Token(控制台「设置 → 我的 API Token」或 rayrun login 创建) 或浏览器会话 Cookie;GET /health 免认证。详见「介绍」页的认证一节。

Server:https://api.rayrunos.com/v1

Rayrun 托管平台

Client Libraries

入向发布

​

发布沙箱内端口(可选回连 HTTP/HTTPS,公开 URL)。

发布一个沙箱内端口(入向 URL)

​

发布 port,返回它的公开 URL。幂等:重复 PUT 同一端口、同一档位、 同一协议 → 200 且不写第二条 journal(客户端重试是正常形态,写第二条 会让审计里出现没发生过的变更)。同端口换档位或换协议 → 200 并落 ingress.updated。

默认档位是 token(fail-closed) —— 省略 visibility 等于「要凭据」。 未知档位名 → 400(既不兜底成 public 也不兜底成 token:那会让 「客户端发了个新值」与「用户真要公开」不可区分)。

protocol 是平台反向代理回连沙箱内服务时使用的协议(http / https),不是对外 URL 的协议 —— 对外恒为 https://。 https 表示沙箱内服务自持 TLS,平台回连时不校验其证书。

  • 新端口省略 protocol = http;
  • 已存在端口省略 protocol = 保留原协议(改可见性不会顺带把 HTTPS 降级成 HTTP);
  • 未知协议 → 400(details.field = protocol,不兜底)。

Stopped 沙箱允许发布 —— 冷停的语义是 URL、token、IP 都不变 ,清单与进程存活无关;端口后面的服务要在 start 之后自己拉起 (本平台不做「按请求唤醒」)。 Terminated → 409。

单沙箱上限 16 条,第 17 条 → 409。已发布端口换档/换协议不占新名额 (走 ingress.updated 分支)—— 否则满 16 条后连改可见性都做不了。

Path Parameters

  • sandbox_id(UUIDv7)

  • guest 侧端口(宿主不占端口)

Body·

application/json

PUT 发布请求体。整体可省(无 body = token 档;协议:新端口 http、 已存在端口保留原值)。

  • 回连沙箱内服务的协议。新端口省略 = http;已存在端口省略 = 保留原协议(避免只改可见性时把 HTTPS 静默降级)。传了未知值 → 400。

  • 省略 = token。传了未知值 → 400(不兜底)。

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for put/sandboxes/{id}/ingress/{port}
curl https://api.rayrunos.com/v1/sandboxes/123e4567-e89b-12d3-a456-426614174000/ingress/1 \
  --request PUT \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "visibility": "public",
  "protocol": "http"
}'
{
  "port": 1,
  "visibility": "public",
  "protocol": "http",
  "url": "string"
}

摘除一个已发布端口

​

204。注意不是幂等的:端口不在清单里(含「发布过又已摘除」)→ 404。 撤下是一次真实的撤销操作,再撤一次应当报「没这回事」而不是静默成功 —— 客户端靠 404 发现自己的状态已漂移。

Path Parameters

  • Integer numbers.

Responses

  • 已摘除

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for delete/sandboxes/{id}/ingress/{port}
curl https://api.rayrunos.com/v1/sandboxes/123e4567-e89b-12d3-a456-426614174000/ingress/1 \
  --request DELETE \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Models