openSUSE:SUSE Studio API

跳转到:导航搜索

RESTful API

SUSE Studio 提供了一个基于 HTTP 的 RESTful API,可用于克隆设备、上传文件、触发和监控构建等等。有关更多详细信息,请参阅 SUSE Studio API 文档

身份验证

为了使用 API,您需要创建一个 API 密钥,该密钥将用作 HTTP Basic Authentication 的密码。您可以在 SUSE Studio 中的用户页面上完成此操作。

库和客户端

有许多库和客户端使用 SUSE Studio API

使用 curl 调用 API

所有 API 函数都可以使用 curl 调用。以下示例应该让您了解如何使用它。

获取模板集列表

模板按模板集分组。以下命令从 Studio 获取模板集列表

 curl -u <user>:<api_key> "http://susestudio.com/api/v1/user/template_sets" (example)

通常,您会从“default”模板集中选择一个模板,该模板列出了默认的 SUSE 模板,并从中克隆一个设备。

列出您的设备

所有设备

 curl -u <user>:<api_key> "http://susestudio.com/api/v1/user/appliances" (example)


特定设备

 curl -u <user>:<api_key> "http://susestudio.com/api/v1/user/appliances/<id>" (example)


克隆设备

要创建新设备,请从模板集中选择一个模板,并使用其 ID 以及以下命令(名称和架构是可选参数)

 curl -u <user>:<api_key> -XPOST "http://susestudio.com/api/v1/user/appliances?clone_from=14774&name=My%20Server&arch=x86_64"

管理叠加文件

列出设备的的文件

 curl -u <user>:<api_key> "http://susestudio.com/api/v1/user/files?appliance_id=<id>" (example)


上传文件

 curl -u <user>:<api_key> -XPOST -F "file=@/path/to/your/file" "http://susestudio.com/api/v1/user/files?appliance_id=<id>" (example)

可选地,您可以在此处指定文件名、路径、所有者、组或权限。


构建您的设备

触发设备的构建

 curl -u <user>:<api_key> -XPOST "http://susestudio.com/api/v1/user/running_builds?appliance_id=<id>"

监控构建进度

 curl -u <user>:<api_key> "http://susestudio.com/api/v1/user/running_builds?appliance_id=<id>" (example)

RESTful API

SUSE Studio 提供了一个基于 HTTP 的 RESTful API,可用于克隆设备、上传文件、触发和监控构建等等。有关更多详细信息,请参阅 SUSE Studio API 文档

URL 编码

并非所有字符都允许进入 URL (http://tools.ietf.org/html/rfc1738)。例如,如果您尝试将 gcc-c++ 包添加到您的设备中,因为“+”是不允许的,则会出现问题。因此,以下内容将不起作用

curl -u user:secret -XPOST http://susestudio.com/api/v1/user/appliances/263276/cmd/add_package?name=gcc-c++


但是,可以对某些字符进行编码。请参阅 https://w3schools.org.cn/tags/ref_urlencode.asp

因此,在我们的示例中,您应该 

curl -u  user:secret -XPOST http://susestudio.com/api/v1/user/appliances/263276/cmd/add_package?name=gcc-c%2B%2B