API 密钥

Metabase 可以创建 API 密钥来验证对 API 的编程请求。要设置 API 密钥的权限,您可以将密钥分配给一个

关于 Metabase API 的公平警告

我们不提供 Metabase API 的版本控制。我们很少更改 API 端点,几乎从不删除它们,但如果您编写依赖于 API 的代码,将来您可能需要更新代码。

尽管如此,有时使用 API 还是很方便的,例如在管理大量人员和组的权限时,或者进行批量归档或内容创建时。因此,我们添加了创建 API 密钥的功能,以验证您的编程请求。

创建 API 密钥

创建 API 密钥的步骤

  1. 点击右上角的齿轮图标。
  2. 选择管理员设置
  3. 进入设置选项卡。
  4. 点击左侧菜单中的身份验证选项卡。
  5. 滚动到API 密钥并点击管理
  6. 点击创建 API 密钥按钮。
  7. 输入密钥名称。您可以拥有多个 API 密钥,因此请给它一个能帮助您记住密钥用途的名称。
  8. 选择一个。该密钥将拥有与该组相同的权限。
  9. 点击创建
  10. 复制生成的 API 密钥并妥善保管。Metabase 无法再次显示该密钥。如果密钥丢失,您需要重新生成一个新密钥。

通过配置文件创建 API 密钥

如果您使用的是Pro 或 Enterprise 自托管计划,您可以通过配置文件创建 API 密钥。

管理 API 密钥

查看和管理现有 API 密钥的步骤

  1. 点击右上角的齿轮图标。
  2. 选择管理员设置
  3. 进入设置选项卡。
  4. 点击左侧菜单中的身份验证选项卡。
  5. 滚动到API 密钥并点击管理

编辑 API 密钥

要编辑 API 密钥,请滚动到您要编辑的密钥并点击铅笔图标。Metabase 将弹出一个编辑 API 密钥模态框,您可以在其中编辑

  • 密钥名称
  • 密钥所属的组。
  • 更改(重新生成)密钥。Metabase 将用新密钥替换现有 API 密钥。您将无法恢复旧密钥。

删除 API 密钥

删除的 API 密钥无法恢复。您必须创建一个新密钥。

删除 API 密钥的步骤

  1. 点击右上角的齿轮图标。
  2. 选择管理员设置
  3. 进入设置选项卡。
  4. 点击左侧菜单中的身份验证选项卡。
  5. 滚动到API 密钥并点击管理
  6. 选择您要删除的密钥,然后点击垃圾桶图标。
  7. Metabase 将弹出一个删除 API 密钥模态框。点击删除 API 密钥按钮。

Metabase 会将与已删除组关联的 API 密钥转移到“所有用户”组

如果您有分配给某个组的 API 密钥,但该组随后被删除,这些 API 密钥将仍然有效,但 Metabase 会将这些密钥重新分配给“所有用户”组。如果您想更改其组,则需要手动编辑密钥。

GET 请求示例

以下是一些返回 Metabase 中组的 GET 请求示例。这些示例假设您正在默认端口 3000 上本地运行 Metabase。

curl 示例

YOUR_API_KEY 替换为您在上方生成的 API 密钥。

curl \
-H 'x-api-key: YOUR_API_KEY' \
-X GET 'http://localhost:3000/api/permissions/group'

JavaScript 示例

假设您已将密钥设置为环境变量,如下所示

export METABASE_API_KEY="YOUR_API_KEY"

这是一个使用 fetch 获取组列表的基本 GET 请求。您可以复制代码,将其保存为文件(例如,api-test.js),然后使用 node api-test.js 运行代码。

// Assuming you've set the key in process with
// `export METABASE_API_KEY="YOUR_KEY_HERE"`
const API_KEY = process.env.METABASE_API_KEY;

const init = {
  headers: {
    "Content-Type": "application/json",
    "X-API-KEY": API_KEY,
  },
};

const host = "http://127.0.0.1:3000";

async function getGroups() {
  const response = await fetch(`${host}/api/permissions/group`, init);
  return response.json();
}

getGroups().then(groups => console.log("Groups in your Metabase:", groups));

延伸阅读

阅读其他Metabase 版本的文档。

© . All rights reserved.