2

我的应用程序的核心要求是能够使用所有集合、图形、数据和 API 自动部署 ArangoDB。到目前为止,HTTP API 和各种包装器已经足够了,但是我还没有找到用于部署 Foxx 服务的 API。有什么方法可以通过 RESTful API 或其中一个包装器创建和部署 Foxx 服务?到目前为止,我知道创建 Foxx 服务的唯一方法是通过 Web 界面。

我发现这个问题让我相信这是可能的,但我不知道如何指定 Foxx 服务的 Git 位置。您能否提供在没有 Web UI 的情况下创建 Foxx 服务的说明并列出可能的参数?

4

1 回答 1

3

要通过 REST API 安装 Foxx 服务,您可以使用端点 HTTP PUT /_admin/foxx/install

它将需要发送一个 JSON 正文,其中包含名为mount和的属性appInfomount需要包含挂载点(需要以正斜杠开头)。appInfo是要挂载的应用程序。它可以包含服务器先前从调用返回的文件名/_api/upload,例如

{ 
    "appInfo" : "uploads/tmp-30573-2010894858", 
    "mount" : "/my-mount-point" 
}

从远程 URL 安装

您还可以从外部服务器通过 HTTP(S) 提供的 zip 文件安装 Foxx 服务。您可以根据需要包含 HTTP Basic Auth 的用户名和密码:

{ 
    "appInfo" : "https://user:password@example.com/my-service.zip", 
    "mount" : "/my-mount-point" 
}

从 GitHub 安装

如果存储库是公共可访问的,您还可以从 GitHub 存储库安装 Foxx 服务,例如

{ 
    "appInfo" : "git:arangodb-foxx/demo-hello-foxx:master", 
    "mount" : "/my-mount-point" 
}

在幕后,ArangoDB 会将请求转换为 GitHub 提供的 zip 包的常规 URL。

从本地文件系统安装

您还可以从本地文件系统上的 zip 文件或目录安装 Foxx 服务:

{ 
    "appInfo" : "/path/to/foxx-service.zip", 
    "mount" : "/my-mount-point" 
}

这也适用于目录,但在这种情况下,ArangoDB 将为您创建一个临时 zip 文件。

于 2016-10-11T06:59:44.557 回答