是否有 REST API 来获取 Tosca 工作区的子文件夹?

Is there a REST API to get subfolders of the workspace in Tosca?

我正在尝试构建一个基于 Angular 的 UI 来检索 Tosca 的所有现有执行列表。但是,我找不到可以提供 Tosca 工作区内文件夹列表的 REST API。有人试过这条路线吗?

您可以在 project 上使用 Search 任务来查找所有 ExecutionList。 示例:

{rest_url}/ToscaCommander/{workspace_name}/object/project/task/Search

作为具有 xml 负载的 post 请求:

<Parameters xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <Parameter>
        <Name>tqlString</Name>
        <Type i:nil="true"/>
        <Value>->SUBPARTS:TCFolder[Name=?"Execution"]=>SUBPARTS:ExecutionList</Value>
    </Parameter>
</Parameters>

这将为您提供 projectExecution 文件夹中包含的 ExecustionList 的 object 个 ID 列表。之后您可以使用此请求一个接一个地获取 object:

{rest_url}/ToscaCommander/{workspace_name}/object/{object_id}

此解决方案归功于 ToscaCommander 的开发团队 - 他们提供了它。

P.S.: 作为对您评论的回答:

  1. 是的,json 相当于 body - 但您不需要它。无论如何,这是等效的:

    [{ "Name":"tqlString", "Value":"->SUBPARTS:TCFolder[Name=?\"Execution\"]=>SUBPARTS:ExecutionList" }]

  2. 如果您想获得 json 响应(无论请求的有效负载格式如何),请确保您的 web.configAutomaticFormatSelectionEnabled 设置为 true(应该是案子)。然后,在您的请求中,相应地设置 accept header:

    Accept: application/json