跳至主内容

公共API

简介

Bitdefender 控制中心 API允许开发者自动化业务流程。

这些API通过 JSON-RPC 2.0协议 进行暴露。

每个API调用都针对一个方法并传递一组参数。

参数分为两种类型:

  • 必选参数 - 必须始终传递给被调用的方法。

  • 可选参数 - 具有默认值,可从参数列表中省略。任何可选参数均可跳过,无论其在参数列表中的位置如何。

API请求

API调用通过HTTP请求执行,其中JSON-RPC消息作为负载。每个API调用必须使用HTTP POST方法。此外,每个HTTP请求必须包含 Content-Type 请求头设置为 application/json .

注意

该API限制每个密钥 每秒的请求数量 。若超出限制,后续请求将被拒绝并返回 429HTTP 状态码,同时附有Retry-After标头标明可重新发起请求的剩余秒数。

控制中心 提供面向产品不同领域的多个API。每个API提供与特定产品领域相关的方法集。所有API的基础URL为安装 GravityZone 的主机名、域名或IP地址: https://YOUR-HOSTNAME/api/v1.0/jsonrpc/ 。获取完整API URL需在基础URL后追加API名称。

重要提示

  • 请确保访问URL(即通用的API端点)是安全的。安全URL始终以 https:// 协议开头。

  • 若使用应用程序自动化调用API,请确保其验证SSL/TLS证书,这有助于防范中间人攻击。

  • 使用支持现代TLS协议的最新库或框架。

当前开放的API如下:

  1. 账户 ,其API URL为:

    https://YOUR-HOSTNAME/api/v1.0/jsonrpc/accounts
  2. 通用 ,其API URL为:

    https://YOUR-HOSTNAME/api/v1.0/jsonrpc/general
  3. 维护窗口 ,其API URL为:

    https://YOUR-HOSTNAME/api/v1.0/jsonrpc/maintenanceWindows
  4. 网络 ,对应的API URL为:

    https://YOUR-HOSTNAME/api/v1.0/jsonrpc/network
  5. 软件包 ,对应的API URL为:

    https://YOUR-HOSTNAME/api/v1.0/jsonrpc/packages
  6. 策略 ,对应的API URL为:

    https://YOUR-HOSTNAME/api/v1.0/jsonrpc/policies
  7. 隔离区 ,对应的API URL为:

    https://YOUR-HOSTNAME/api/v1.0/jsonrpc/quarantine
  8. 报告 ,对应的API URL为:

    https://YOUR-HOSTNAME/api/v1.0/jsonrpc/reports
  9. 沙箱 ,对应的API URL为:

    https://YOUR-HOSTNAME/api/v1.0/jsonrpc/sandbox
  10. 沙箱门户 ,对应的API URL为:

    https://SANDBOX-IP/api/v1

可通过向每个API URL发送包含JSON RPC 2.0的HTTP请求来调用其公开的功能接口。

注意

当前 控制中心 .

API密钥

API密钥是在 我的账户 控制中心 每个API密钥允许应用程序调用一个或多个API公开的方法。生成API密钥时可选择允许访问的API。

生成API密钥步骤:

  1. 登录 https://YOUR-HOSTNAME/ 使用管理员账户,该账户需具备以下权限: 管理网络 , 管理用户 , 管理公司 以及 查看分析数据 .

  2. 点击控制台右上角的用户名并选择 我的账户 :

    console_my_account_121716_en.png
  3. 进入 API密钥 分区后点击 添加 按钮:

    console_my_account_add_API_key121716_en.png
  4. 输入密钥描述并选择该密钥需启用的API:

    console_my_account_configure_API_key_op_121716_en.png
  5. 点击 生成 .

    注意

    将显示包含新生成API密钥的窗口及警告提示——该密钥仅在窗口打开时可查看。关闭窗口后,您将无法在 GravityZone .

    console_my_account_display_API_key_121716_en.png
  6. 点击 copy_to_clipboard_121716_en.png 按钮将密钥复制到剪贴板并保存在安全位置。

  7. 关闭 API密钥 窗口。

新密钥将以模糊格式添加到 API密钥 部分,同时显示其描述、创建日期及已启用的API列表。

API_keys_gzconsole_o_125277_en.png

重要提示

通过API密钥,开发者可访问包裹和库存等敏感信息。请勿共享或分发您生成的API密钥,以防敏感信息泄露!

控制中心 还允许您删除不再需要的历史API密钥:

  1. 从列表中选择API密钥。

  2. 点击 删除 按钮:

    console_my_account_delete_API_key_125277.png
  3. 选择 确认删除。

    警告

    密钥将立即失效,所有使用该密钥的第三方应用连接将被终止。

身份验证

控制中心 的API调用需通过HTTP协议层的 HTTP基本认证 机制进行验证(详见 此处 .

客户端应用每次调用API时都必须发送Authorization请求头。

Authorization 请求头包含以下元素:

  1. 授权方法及空格前缀;在本例中,该前缀始终为 Basic .

  2. 用户名:密码 组合字符串生成的Base64编码字符串。

    本例中,API密钥作为用户名,密码设为空字符串。

    例如,若API密钥为

    N8KzwcqVUxAI1RoPi5jyFJPkPlkDl9vF ,则需对以下字符串进行Base64编码:

    N8KzwcqVUxAI1RoPi5jyFJPkPlkDl9vF: 。此时发送至授权请求头的内容为

    BasicTjhLendjcVZVeEFJMVJvUGk1anlGSlBrUGxrRGw5dkY6 .

错误报告

控制中心 当请求的API方法无法执行目标操作时会返回错误。

以下是一个失败API调用的错误响应示例:

{
          "id":"4d77e2d9-f760-4c8a-ba19-53728f868d98",
          "jsonrpc" : "2.0",
          "error" : {
              "code" : -32601,
              "message" : "方法未找到",
              "data" : {
                  "details" : "所选API不可用"
              }
          }
      }

错误代码与错误信息均按 JSON-RPC 2.0规范 :

错误

代码

信息

解析错误

-32700

解析错误

无效请求

-32600

无效请求

方法未找到

-32601

方法未找到

无效参数

-32602

无效参数

服务器错误

-32000

服务器错误

错误的完整描述存放于 data.details 错误消息中的成员字段内。

同时,HTTP状态码会根据错误类型进行设置:

HTTP状态码

描述

401 未授权

当请求认证失败时设置(例如API密钥错误或缺失)。

403 禁止访问

当请求未被授权使用目标功能时设置(例如当前API密钥未启用该API)。

405 方法不允许

使用了非POST的HTTP方法。

429 请求过多

同一API密钥每秒发出超过10次请求。

200 HTTP状态码

该状态码表示请求成功,或由于服务器错误导致请求失败(例如未传递必填参数)。