25.2. 使用 Swagger 接口通过 Process Automation Manager 控制器 REST API 发送请求

Process Automation Manager 控制器 REST API 支持 Swagger Web 界面,您可以使用它而不是独立 REST 客户端或 curl 实用程序与 Red Hat Process Automation Manager 中的 KIE 服务器模板、实例和相关 KIE 容器进行交互,而无需使用 Business Central 用户界面。

注意

默认情况下,Process Automation Manager 控制器的 Swagger Web 界面由 org.kie.workbench.swagger.disabled=false 系统属性启用。要禁用 Process Automation Manager 控制器的 Swagger Web 界面,请将此系统属性设置为 true

先决条件

  • Process Automation Manager 控制器已安装并运行。
  • 如果您安装了 Business Central,或 kie-server 用户角色可以访问与 Business Central 单独安装的无头 Process Automation Manager 控制器,则您具有对 Process Automation Manager 控制器的 rest-all 用户角色访问。

流程

  1. 在 Web 浏览器中,导航到 http://SERVER:PORT/CONTROLLER/docs,如 http://localhost:8080/business-central/docs,并使用具有 rest-all 角色或无头 Process Automation Manager 控制器用户使用 kie-server 角色的用户名和密码登录。

    注意

    如果您使用内置于 Business Central 中的 Process Automation Manager 控制器,则与 Process Automation Manager 控制器关联的 Swagger 页面被识别为 Business Central REST 服务的" Business Central API"。如果您在没有 Business Central 的情况下使用无头 Process Automation Manager 控制器,则与无头进程自动化管理器控制器关联的 Swagger 页面被识别为 "Controller API"。在这两种情况下,Process Automation Manager 控制器 REST API 端点都是相同的。

  2. 在 Swagger 页面中,选择要发送请求的相关 API 端点,如 Controller :: KIE Server 模板和 KIE containers[GET] /controller/management/servers,以从 Process Automation Manager 控制器检索 KIE 服务器模板。
  3. Try it out,并提供您要过滤结果(如果适用)的任何可选参数。
  4. Response content type 下拉菜单中,选择服务器响应所需的格式,如 JSON 格式的 application/json
  5. Execute 并查看 KIE 服务器响应。

    服务器响应示例(JSON):

    {
      "server-template": [
        {
          "server-id": "default-kieserver",
          "server-name": "default-kieserver",
          "container-specs": [
            {
              "container-id": "employeerostering_1.0.0-SNAPSHOT",
              "container-name": "employeerostering",
              "server-template-key": {
                "server-id": "default-kieserver",
                "server-name": "default-kieserver"
              },
              "release-id": {
                "group-id": "employeerostering",
                "artifact-id": "employeerostering",
                "version": "1.0.0-SNAPSHOT"
              },
              "configuration": {
                "RULE": {
                  "org.kie.server.controller.api.model.spec.RuleConfig": {
                    "pollInterval": null,
                    "scannerStatus": "STOPPED"
                  }
                },
                "PROCESS": {
                  "org.kie.server.controller.api.model.spec.ProcessConfig": {
                    "runtimeStrategy": "SINGLETON",
                    "kbase": "",
                    "ksession": "",
                    "mergeMode": "MERGE_COLLECTIONS"
                  }
                }
              },
              "status": "STARTED"
            },
            {
              "container-id": "mortgage-process_1.0.0-SNAPSHOT",
              "container-name": "mortgage-process",
              "server-template-key": {
                "server-id": "default-kieserver",
                "server-name": "default-kieserver"
              },
              "release-id": {
                "group-id": "mortgage-process",
                "artifact-id": "mortgage-process",
                "version": "1.0.0-SNAPSHOT"
              },
              "configuration": {
                "RULE": {
                  "org.kie.server.controller.api.model.spec.RuleConfig": {
                    "pollInterval": null,
                    "scannerStatus": "STOPPED"
                  }
                },
                "PROCESS": {
                  "org.kie.server.controller.api.model.spec.ProcessConfig": {
                    "runtimeStrategy": "PER_PROCESS_INSTANCE",
                    "kbase": "",
                    "ksession": "",
                    "mergeMode": "MERGE_COLLECTIONS"
                  }
                }
              },
              "status": "STARTED"
            }
          ],
          "server-config": {},
          "server-instances": [
            {
              "server-instance-id": "default-kieserver-instance@localhost:8080",
              "server-name": "default-kieserver-instance@localhost:8080",
              "server-template-id": "default-kieserver",
              "server-url": "http://localhost:8080/kie-server/services/rest/server"
            }
          ],
          "capabilities": [
            "RULE",
            "PROCESS",
            "PLANNING"
          ]
        }
      ]
    }
  6. 在 Swagger 页面中,导航到 Controller :: KIE Server 模板和 KIE containers[GET] /controller/management/servers/{serverTemplateId} 端点,以发送另一个请求来创建新的 KIE Server 模板。根据您的用例调整任何请求详情。
  7. Try it out 并为请求输入以下组件:

    • serverTemplateId :输入新 KIE Server 模板的 ID,如 new-kieserver
    • 正文 :将 参数内容类型设置为 所需的请求正文格式,如 JSON 格式的 application/json,并使用新 KIE Server 模板的配置添加请求正文:
    {
      "server-id": "new-kieserver",
      "server-name": "new-kieserver",
      "container-specs": [],
      "server-config": {},
      "capabilities": [
        "RULE",
        "PROCESS",
        "PLANNING"
      ]
    }
  8. Response content type 下拉菜单中,选择服务器响应所需的格式,如 JSON 格式的 application/json
  9. Execute 并确认 Process Automation Manager 控制器响应成功。

    如果您遇到请求错误,请查看返回的错误代码信息并相应地调整您的请求。