List Workflow Directories

获取当前用户所属组织workflow目录下的所有内容,包括子目录和任务流文件。

前提条件

用户必须属于待获取目录所属的OU。

请求格式

GET https://{apigw-address}/dataflow-batch-service/v2.0/directories?action=listWorkFlowDirs

请求参数(URI)

名称 位置(Path/Query) 必需/可选 数据类型 描述
userId Query 必需 String 用户ID。如何获取userId信息>>
orgId Query 必需 String 用户所属的组织ID。如何获取orgId信息>>

响应参数

名称 数据类型 描述
data JSONObject

WorkFlowDir结构体的集合,表示该目录下的所有子项,包括子目录和文件:

WorkFlowDir结构体

示例

{
  "children": []
  "title":"newdir",
  "type": 1,
  "key": "dirId",
  "isDirectory":true
}

参数

名称 数据类型 描述
children List<WorkFlowDir> 子目录或文件列表,列表中每个元素仍然是WorkFlowDir或WorkFlowFile结构体类型。
title String 目录名。
type Float 标识目录类型,共有五种目录,分别存放不同类型的模型(0:数据集成;1.0:任务流;2.0:数据资源;3.0:Hql;4.0:Common Resource)。
key String 目录ID。
isDirectory Boolean true表示为目录,false表示为文件。

WorkFlowFile结构体

示例

{
  "editable": true,
  "title":"newdir",
  "type": 1,
  "key": 3381.0,
  "isDirectory":false
}

参数

名称 数据类型 描述
editable Boolean 是否可编辑。
title String 文件名。
type Float 标识文件类型,共有五种类型(0:数据集成;1.0:任务流;2.0:数据资源;3.0:Hql;4.0:Common Resource)
key Float 任务流 ID(转换为Float类型)。
isDirectory Boolean true表示为目录,false表示为文件。

错误码

代码 错误信息 描述
62109 Server internal exception 服务器内部异常

有关其他错误码的描述,参见 通用错误码

示例

请求示例

url: https://{apigw-address}/dataflow-batch-service/v2.0/directories?action=listWorkFlowDirs&userId={}&orgId={}

method: GET

返回示例

{
  "status": 0,
  "msg": " Success",
  "data": [
    {
      "children": [
        {
          "children": [],
          "title": "String1",
          "type": 1,
          "key": "yourDirKey",
          "isDirectory": true
        },
        {
          "children": [
            {
              "editable": true,
              "title": "workflow1",
              "type": 1,
              "key": 2512,
              "isDirectory": false
            }
          ],
          "title": "ffdir",
          "type": 1,
          "key": "your dir key",
          "isDirectory": true
        },
        {
          "children": [],
          "title": "dirt",
          "type": 1,
          "key": "your dir key",
          "isDirectory": true
        }
      ],
      "title": "Workflow",
      "type": 1,
      "key": "your dir key",
      "isDirectory": true
    }
  ]
}

Java SDK调用示例

import com.alibaba.fastjson.JSONObject;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envision.apim.poseidon.request.PoseidonRequest;
import org.junit.Test;

import java.util.Map;

public class SampleCode{
    public static class Request extends PoseidonRequest {
        public void setQueryParam(String key, Object value){
            queryParams().put(key, value);
        }
        public void setHeaderParam(String key, String value){
            headerParams().put(key, value);
        }
        public void setBodyParam(Map<String, Object> bodyPara){
            bodyParams().putAll(bodyPara);
        }
        public void setMethod(String method) {
            this.method = method;
        }
        private String method;
        public String baseUri() {
            return "";
        }
        public String method() {
            return method;
        }
    }

    @Test
    public void listWorkFlowDirsTest(){
        //1.在EnOS Console的左边导航栏中点击应用注册。
        //2.点击需调用API的应用,查看基本信息中的AccessKey即为accessKey、SecretKey即为secretKey
        String accessKey = "AccessKey of your APP";
        String secretKey = "SecretKey of your APP";

        //新建一个request 然后把需要的参数传进去存在Query的map中,key是参数名字,value是参数值
        Request request = new Request();
        request.setMethod("GET");

        try {
            JSONObject response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
                    .url("https://{apigw-address}/dataflow-batch-service/v2.0/directories")
                    .queryParam("orgId", "yourOrgId")
                    .queryParam("userId", "yourUserId")
                    .queryParam("action", "listWorkFlowDirs")
                    .getResponse(request, JSONObject.class);

            System.out.println(response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}