ArangoDB:通过 API 创建一个新的 Foxx 服务

ArangoDB: Create a new Foxx service via API

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

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

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

需要发送 JSON 正文,属性名为 mountappInfomount 需要包含挂载点(需要以正斜杠开头)。 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 服务,前提是该存储库 public 可访问,例如

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

在幕后,ArangoDB 会将请求翻译成 URL 压缩包的常规 GitHub 提供。

从本地文件系统安装

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

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

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