使用 工具箱 CLI 验证 API 或产品文档

如何使用 API Connect 工具箱 CLI 对 API 或产品文档运行 监管 验证扫描。

关于

IBM® API Connect 中的 Governance 服务可用于对 API 开发流程验证和实施组织监管策略和最佳实践。 以下信息提供了用于在 API 或产品文档上运行和管理验证扫描的 工具箱 CLI 命令的详细信息。 您还可以使用 API ManagerAPI Designer UI 来验证 API 或产品文档。 有关验证扫描的更多信息,请参阅 《使用治理服务验证 API 或产品文档 》。

验证本地存储的单个 API 或产品文档

要针对一个或多个规则集对单个 API 或产品文档运行验证扫描,请完成以下步骤。 文档必须存储在本地。
  1. 以提供者组织的所有者或管理员身份登录到 Toolkit。
    例如:
    apic login --server platform-api-host-name --sso
    其中 <platform-api-host-name> 是托管 API 管理器("管理服务器")的服务器的主机名部分 URL。 要确定主机名,请在浏览器中打开 API 管理器,然后在地址栏中复制 URL 中的主机名(从 " https:// "之后开始,到"/manager "之前结束),如下例所示:
    https://platform-api.us-east-1.d-r01.apic.cloud.ibm.com/manager
    
    工具箱提示输入上下文时,输入 provider 并按 Enter 键:
    Context? provider
    有关工具包 CLI 的更多信息,请参阅设置 API Connect 工具包

  2. governance 方式运行 compliance:validate 工具箱命令。
    apic --mode governance compliance:validate --org <target_org> --server <platform_api_host_name> --rulesets <ruleset_name_1>,<ruleset_name_2> API_OR_PRODUCT_FILE
    其中:
    • <target_org> 是拥有要验证的 API 的提供者组织的名称。
    • <platform_api_host_name> 是托管 API 管理器的服务器("管理服务器")的主机名部分 URL。
      提示: 要确定主机名,可以在浏览器中打开 API 管理器 ,然后从地址栏中的 URL 复制主机名(从 https:// 后开始,到 /manager 前结束)。
    • <ruleset_name_1>,<ruleset_name_2> 是一个逗号分隔的列表,用于指定要应用于 API 或产品的规则集的名称。 (指定每个规则集名称; 请勿使用规则集标识。)
    • API_OR_PRODUCT_FILE 是要验证的文件的路径和文件名。

验证存储在管理服务器上的一个或多个 API 或产品

此操作对 COMPLIANCE_REQUEST_FILE中列出的所有草稿 API 或所有产品运行验证扫描。 您可以在任何时候仅扫描 API 或仅扫描产品。 这些 API 必须存储为提供者组织中的草稿 API。

  1. 创建 JSON COMPLIANCE_REQUEST_FILE ,以指定要在验证期间使用的规则集,以及要扫描的草稿 API 或产品的位置。 该文件只能包含 API 的 URL ,或者只能包含产品的 URL; 不能在同一文件中同时列出 API 和产品 URL。
    以下示例显示用于指定两个草稿 API 和两个规则集的配置文件。 在 spectral-oas 规则集中, info-contact 规则处于禁用状态,并且将在验证期间忽略。
    {
      "apiUrls" : ["https://example.com/api/orgs/768a5f80-177c-4100-b2b6-57ce6c4bf761/drafts/draft-apis/a08898fe-b422-41d3-b058-c3280d632e93","https://example.com/api/orgs/768a5f80-177c-4100-b2b6-57ce6c4bf761/drafts/draft-apis/26692eab-f43b-4af3-985c-2deaa401eb7f"],
      "config" : {
        "rulesets": [
          {
            "rulesetName": "spectral-oas",
            "disabled": ["info-contact"]
          },
          {
            "rulesetName": "spectral-owasp",
            "disabled": []
          }
          ]
     }
    }
    以下示例显示用于指定一个产品文档的配置文件。
    {
      "productUrls" : ["https://example.com/api/orgs/768a5f80-177c-4100-b2b6-57ce6c4bf761/drafts/draft-product/a07968fe-b422-41d3-b058-c3280d632e93"],
      "config" : {
        "rulesets": [
          {
            "rulesetName": "product-info",
            "disabled": ["subscribe"]
          },
          {
            "rulesetName": "product-rate",
            "disabled": []
          }
          ]
     }
    }
    其中:
    • apiUrls 是 API URL 的逗号分隔列表。 每个 URL 都指定了特定提供商组织中应用程序接口草案的位置。
    • productUrls 是产品 URL 的逗号分隔列表。 每个 URL 指定了特定提供商组织中产品文档的位置。
    • rulesetName 是要在验证期间应用于 API 或产品的规则集的列表。

      对于列表中的每个规则集,您可以选择添加 disabled 属性以及要在验证期间忽略的以逗号分隔的规则列表。

  2. 以提供者组织的所有者或管理员身份登录到 Toolkit。 请参阅步骤 1 以获取详细信息。
  3. governance 方式运行 compliance:validate_all 工具箱命令。
    apic --mode governance compliance:validate_all --org <target_org> --server <platform_api_host_name> COMPLIANCE_REQUEST_FILE
    其中:
    • <target_org> 是拥有包含要验证的 API 的目录的提供者组织的名称。
    • <platform_api_host_name> 是托管 API 管理器的服务器("管理服务器")的主机名部分 URL。
      提示: 要确定主机名,可以在浏览器中打开 API 管理器 ,然后从地址栏中的 URL 复制主机名(从 https:// 后开始,到 /manager 前结束)。
    • COMPLIANCE_REQUEST_FILE 是配置文件的路径和文件名,该文件列出了 API 或产品文档,以及验证过程中要使用的规则集(例如 )。 validate-apis.json