# 托管 API 功能

提示

  1. 请先参考 文档 搭建托管 API
  2. 该文档仅针对 now.sh 类型的部署

# 接口鉴权

# 打开鉴权

surgio.conf.js 中增加如下字段:

{
  gateway: {
    auth: true,
    accessToken: 'YOUR_PASSWORD',
  },
}

# 请求需要鉴权的接口

请在请求的 URL 中加入参数 access_token,值为上面所设。

# 未开启鉴权

https://xxxxxx.xxx.now.sh/list-artifact

# 开启鉴权

https://xxxxxx.xxx.now.sh/list-artifact?access_token=YOUR_PASSWORD

# 接口

# 展示所有 Artifact

GET /list-artifact
需要鉴权

特性:

  • 若名称中包含 surge(大小写不敏感),则会出现添加到 Surge 的按钮。
  • 若名称中包含 clash(大小写不敏感),则会出现添加到 ClashX/CFW 的按钮。
  • 若项目下的 package.jsonrepository 字段,则支持直接跳转到 GitLab 或 GitHub 编辑对应文件。

# 下载 Artifact

GET /get-artifact/<artifactName>
需要鉴权

可选参数:

参数 可选值 备注
format surge-policy, qx-server, clash-provider v1.6.0
filter 内置的过滤器或自定义过滤器 v1.6.0

定义:

  • surge-policy Surge 远程节点 Policy
  • qx-server QuantumultX 远程节点
  • clash-provider v1.11.0 Clash Provider

提示

  1. format 使用的是内置的模板,所以你不需要额外定义模板格式,不过仍然需要定义一个完整的 Artifact。我的建议是定义一个有完整节点的 Artifact,然后根据需要过滤出节点。
  2. filter 的值为过滤器的名称。你可以直接使用内置的过滤器,例如 hkFilter,也可以使用自定义的过滤器。

# 转换 Quantumult X 远程脚本

GET /qx-script?url=<远程脚本地址>
即将废弃

可选参数:

参数 备注
id 设备 ID 多个值以半角 , 分隔

会在脚本内容中注入设备 ID。

使用时,将规则放入 rewrite_local 即可。

[rewrite_local]
^http://example\.com/resource/ url script-echo-response https://xxx.xx.now.sh/qx-script?url=https://raw.githubusercontent.com/crossutility/Quantumult-X/master/sample-rewrite-with-script.js

提示

  1. 若 URL 中有参数 id 则只会添加参数中的值而忽略配置中的值。
  2. 你可以在全局配置中添加 固定的设备 ID

# 转换 Quantumult X rewrite_remote

GET /qx-rewrite-remote?url=<远程脚本地址>
即将废弃

可选参数:

参数 备注
id 设备 ID 多个值以半角 , 分隔

这个脚本 为例,API 会将内容里的 script-response-body 条目的脚本地址替换成注入设备 ID API 的地址。

使用时,将规则放入 rewrite_remote 即可。

[rewrite_remote]
https://xxx.xx.now.sh/qx-rewrite-remote?url=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/Js.conf, tag=NobyDa, enabled=true

提示

  1. 若 URL 中有参数 id 则只会添加参数中的值而忽略配置中的值。
  2. 你可以在全局配置中添加 固定的设备 ID