分享本地 HTTP API:curl、Postman 与 webhook

MyShare 可以把本机或局域网中的 HTTP/HTTPS API 变成临时公网接口,供同事用 curl、Postman 或 webhook 调用。后端不需要 HTML 首页,也不需要另建前端;分享密码和接口自己的登录各自生效。

先分享 API 的服务地址

  1. 启动 API,在分享电脑上确认可访问,例如 http://localhost:8080http://192.168.1.20:8080
  2. 首页选择「网页或服务」,填写服务起始地址。根路径返回可读取的 401、403、404 或 405 也能分享;连接、浏览器权限和 CORS 要求仍需满足。
  3. 完成安全验证和首次分享协议确认,点击「生成分享链接」,随后把链接路径换成实际接口路径,保留分享密码。

支持 localhost、127.0.0.1、[::1] 和 RFC1918 私有 IPv4 地址;内网域名和公网目标不在范围内。一个主服务可另加最多两个明确批准的来源,创建后清单固定。已有 /api 开发代理时,直接分享前端地址即可。浏览器权限和 LAN 细节见本地与 LAN 指南

用 curl 或 Postman 直接请求

下面的域名、密码和业务令牌都是占位示例,请换成自己的分享地址、本次六位临时密码和访客的 API 凭据。URL 中的 __myshare_password 可直接解锁,无需先打开网页或换取 MyShare 访问 Cookie。

curl 'https://YOUR-SHARE.example.invalid/api/echo?__myshare_password=YOUR_SHARE_PASSWORD' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"message":"hello"}'

另一种方式是从 URL 移除密码,改为发送 X-MyShare-Password: YOUR_SHARE_PASSWORD 请求头。两种方式权限相同;同时提供却不一致会被拒绝。网关验证后移除专用密码参数和请求头,不把它们发送给本地服务。

Postman 填入同样的完整接口 URL,按原 API 设置方法、业务鉴权和请求正文即可。Webhook 调用方如果能保留 URL 查询参数,可以直接 POST 到含密码的接口地址;分享电脑、浏览器和 API 在回调到达时都必须在线。

业务登录和分享密码如何配合?

分享密码只授予这份预览的访问权。接口仍可要求访客自己的合法 Authorization: Bearer …Authorization: Basic …,请求方法、路径和正文照常转发;不要把分享密码放进业务 Authorization。格式错误或其他 Authorization 类型不受支持。

业务 Cookie/HttpOnly 登录需要扩展,或接入已有 Node 开发服务的项目适配器。此时可在请求中带访客自己的 Cookie: session=YOUR_SESSION;普通网页分享会过滤 Cookie/Set-Cookie。适配器仅用于回环地址,LAN Cookie 登录使用扩展。分享者浏览器原有的登录不会带给访客。

CORS 与额外来源

网页分享通过分享者浏览器读取本地服务。本地 CORS 必须允许准确的 MyShare Origin,处理 OPTIONS,并显式允许 Authorization、Content-Type 等实际请求头。可在「更多选项 → 后端与登录」复制 AI 配置提示词交给项目助手;扩展则需逐个批准本次地址。

从其他网页的 JavaScript 调用公开接口还涉及另一层来源检查:同一分享内映射的预览来源可以互相调用,任意第三方网站的跨域请求并不会因持有密码而自动获准。curl、Postman 和服务器 webhook 不依赖浏览器 CORS;它们的可用不证明第三方网页跨域可用。

使用边界与排错

分享一个 HTTP API ↗