美文网首页
dolphinscheduler 的api 调度使用RestT

dolphinscheduler 的api 调度使用RestT

作者: wudl | 来源:发表于2021-07-31 17:24 被阅读0次

1. 项目的整体架构

ds 调度Flink.png

2. 相当于每次调用接口的时候先登录

 用户登录  -------> 返回获取header 头中获取token  然后在通过token 调用其他接口
 合理的方法是:
   每次登录后将获取到的token 存到redis  中然后其他接口在调用的时候先从redis 获取token(因为token 中有 有效时间的限制) , 如果没有token 的话就 在登录获取token 然后才存入redis中。

    @PostMapping("/getRequestToken")
    public Result getRequestToken() {
        String url = "http://192.168.1.163:12345/dolphinscheduler/login";
        MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
        paramsMap.add("userName","wudl");
        paramsMap.add("userPassword","admin@123");
        ResponseEntity<Result> loginResult = RestTemplateUtils.post(url, paramsMap, Result.class);
        Result body1 = loginResult.getBody();
        System.out.println("abcd==="+loginResult.getHeaders());
        System.out.println("dsfsdfs"+body1.toString());
        System.out.println("11122======"+loginResult.getHeaders().get("Set-Cookie").get(0));
        String abc = body1.getData().toString().split("=")[1];
        System.out.println("sdfsdfs222========"+abc.substring(0,36));

        System.out.println("------------------------------------------------------------------");
        String urltoken = "http://192.168.1.163:12345/dolphinscheduler/projects/test-flink/executors/execute";
        HttpHeaders requestHeaders = new HttpHeaders();

        requestHeaders.add(HttpHeaders.COOKIE,loginResult.getHeaders().get("Set-Cookie").get(0));
        //头部类型
        requestHeaders.add("Content-Type", "application/json");
        //头部类型
        requestHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);

        MultiValueMap<String, Object> requestBody = new LinkedMultiValueMap<>();
        requestBody.add("executeType","REPEAT_RUNNING");
        requestBody.add("processInstanceId",10);
        requestBody.add("projectName","test-flink");

        HttpEntity<MultiValueMap> requestEntity = new HttpEntity<MultiValueMap>(requestBody, requestHeaders);
        ResponseEntity<Result> resultResponseEntity = RestTemplateUtils.post(urltoken, requestEntity, Result.class,requestBody);
        return resultResponseEntity.getBody();
    }

3. 获取token 的方法

loginResult.getHeaders().get("Set-Cookie").get(0))
在传入headers中就可以了 公共方法在上一篇博客中有。

4.调用接口执行结果

ds 用户获取token.png ds 获取token---ss.png ds-flink---0007.png

相关文章

网友评论

      本文标题:dolphinscheduler 的api 调度使用RestT

      本文链接:https://www.haomeiwen.com/subject/xolkvltx.html