dolphinscheduler 的api 调度使用RestTemplate采用内置用户 调用接口

1. 项目的整体架构

dolphinscheduler 的api 调度使用RestTemplate采用内置用户 调用接口_第1张图片

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.调用接口执行结果

dolphinscheduler 的api 调度使用RestTemplate采用内置用户 调用接口_第2张图片

dolphinscheduler 的api 调度使用RestTemplate采用内置用户 调用接口_第3张图片

dolphinscheduler 的api 调度使用RestTemplate采用内置用户 调用接口_第4张图片

你可能感兴趣的:(调度)