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 正文,属性名为 mount
和 appInfo
。 mount
需要包含挂载点(需要以正斜杠开头)。 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 文件。
我的应用程序的核心要求是能够自动部署包含所有集合、图形、数据和 API 的 ArangoDB。到目前为止,HTTP API 和各种包装器已经足够了,但我还没有找到用于部署 Foxx 服务的 API。有什么方法可以通过 RESTful API 或通过其中一个包装器来创建和部署 Foxx 服务吗?到目前为止,我知道创建 Foxx 服务的唯一方法是通过 Web 界面。
我发现
要通过 REST API 安装 Foxx 服务,您可以使用端点 HTTP PUT /_admin/foxx/install
。
需要发送 JSON 正文,属性名为 mount
和 appInfo
。 mount
需要包含挂载点(需要以正斜杠开头)。 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 文件。