Search Flow

分页查询符合条件的所有任务流的基本信息(包括其他用户的任务流)。

前提条件

用户必须属于待搜索任务流所属的OU。

请求格式

POST https://{apigw-address}/batch-processing-service/v2.1/flows

请求参数(URI)

名称

位置(Path/Query)

必需/可选

数据类型

描述

userId

Query

必需

String

用户ID。如何获取userId信息>>

orgId

Query

必需

String

用户所属的组织ID。如何获取orgId信息>>

action

Query

必需

String

固定值:search

请求参数(Body)

名称

必需/可选

数据类型

描述

expression

可选

String

指定在 flowId 和 flowName 字段中模糊匹配查询条件(若不指定,则返回相关的所有任务流)。

pagination

必需

Pagination 请求结构体

分页信息结构体。详见 Pagination请求结构体

Pagination请求结构体

示例

{
    "pagination": {
        "pageNo": 1,
        "pageSize": 10,
        "sorters": [{
            "field": "start_time",
            "order": "ASC"
        }]
    }
}

参数

名称

必需/可选

数据类型

描述

pageNo

必需

Integer

请求页数,从1开始。

pageSize

必需

Integer

每页记录数,必须大于0。为获得最佳性能,建议每页不超过50条。

sorters

可选

jsonArray

分页排序方式(sorters结构体包含两个字段:sorter.field 和 sorter.order,具体见下方 sorters 参数展开)

sorters

名称

必需/可选

数据类型

描述

field

必需

String

分页字段名称。支持字段:create_timeupdate_timestart_time

order

可选

String

ASC 表示正序排序,DESC 表示倒序排序,默认为正序排序。

响应参数

名称

数据类型

描述

data

JSONObject

PageFlow结构体的集合,集合中每一项表示查询到的一个任务流的基本信息。详见 PageFlow结构体

PageFlow结构体

示例

{
    "flowId": "21",
    "flowName": "dim_wtg_full"
}

参数

名称

数据类型

描述

flowId

Integer

任务流ID。

flowName

String

任务流名称。

错误码

代码

错误信息

描述

62102

Illegal field, should be one of [create_time, update_time, start_time].

参数 sorters.field 的值不正确,必须为 create_timeupdate_time、或 start_time

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

示例

请求示例

url: https://{apigw-address}/batch-processing-service/v2.1/flows?action=search&userId={}&orgId={}

method: POST

requestBody:
{
    "expression": "",
    "pagination":{
        "pageNo": 1,
        "pageSize": 10,
        "sorters": [{
            "field": "update_time",
            "order": "ASC"
        }]
    }
}

返回示例

{
    "code": 0,
    "msg": "OK",
    "data": [
        {
            "flowId": "20",
            "flowName": "vd_text"
        },
        {
            "flowId": "21",
            "flowName": "dim_wtg_full"
        },
        {
            "flowId": "22",
            "flowName": "wenl_dim_fact_downtime"
        }
    ]
}

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.ArrayList;
import java.util.HashMap;
import java.util.List;
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 searchFlowsTest(){
        //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();

        HashMap<String,Object> bodyMap= new HashMap<String, Object>(2);
        bodyMap.put("expression","");
        HashMap<String,Object> paginationMap= new HashMap<String, Object>(3);
        paginationMap.put("pageNo",1);
        paginationMap.put("pageSize",10);
        List<HashMap<String,Object>> list = new ArrayList<HashMap<String,Object>>();
        HashMap<String,Object> sorterMap= new HashMap<String, Object>(2);
        sorterMap.put("field","update_time");
        sorterMap.put("order","ASC");
        list.add(sorterMap);
        paginationMap.put("sorters",list );
        bodyMap.put("pagination",paginationMap);
        request.setBodyParam(bodyMap);
        request.setMethod("POST");

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

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