开发者社区> 问答> 正文

三方系统有个报表接口查询数据大于20s以上如何在宜搭上调用这个接口并且把数据取到宜搭上呢

三方系统有个报表接口查询数据大于20s以上如何在宜搭上调用这个接口并且把数据取到宜搭上呢

展开
收起
游客klqdm3bd5twy6 2024-03-12 10:42:47 82 0
来自:钉钉宜搭
2 条回答
写回答
取消 提交回答
  • 页面数据源,远程 api,连接自己的接口,注意处理跨域

    2024-03-24 22:35:01
    赞同 展开评论 打赏
  • 桃李春风一杯酒,江湖夜雨十年灯。

    你可以通过宜搭开放的 API 进行数据获取,配置连接器工厂将 HTTP 或者 HTTPS 的接口注册,然后在表单中通过 JavaScript 调用。具体步骤如下:

    1. 准备接口资料:
      • 宜搭应用的应用参数和秘钥;
      • 钉钉开发者 AppKey 和 AppSecret;
      • 任意一个钉钉的 userid。
    2. 登录阿里云账号,开通云函数计算 FC。
    3. 将以下代码放入 FC 中:
       const Url = require('url');
       const API_SERVER = 'https://api.dingtalk.com';
       const API_VERSION = 'v1.0';
       // 获取 token 鉴权接口
       exports.handler = (req, resp, context) => {
           resp.setHeader('Content-type', 'application/json');
           getRawBody(req, function (err, body) {
               post(`${API_SERVER}/${API_VERSION}/oauth2/accessToken`, {
                   appKey: 'dinglg-xxxxxx',
                   // 钉钉开发者 appkey
                   appSecret: 'h1g7F3-xxxxxx',
                   // 钉钉开发者 appsecret
                   function (data) {
                       data = JSON.parse(data);
                       if (data.expireIn) {
                           var respBody = new Buffer.from(JSON.stringify(data));
                           resp.setStatusCode(200);
                           resp.send(respBody);
                       } else {
                           var respBody = new Buffer.from(JSON.stringify({
                               success: 'false',
                               errMsg: '获取失败',
                               errCode: '400'
                           }));
                           resp.setStatusCode(200);
                           resp.send(respBody);
                       }
                   }
               });
           });
       };
       // 获取数据接口
       exports.getData = (req, resp, context) => {
           resp.setHeader('Content-type', 'application/json');
           getRawBody(req, function (err, body) {
               let pageSize = req.queries.pageSize ? req.queries.pageSize : 10;
               let url = `${API_SERVER}/${API_VERSION}/open-apis/data捞取接口`;
               // 将捞取接口替换为实际的接口路径
               url += `?pageSize=${pageSize}&systemToken=${systemToken}&userId=${userId}`;
               // 宜搭应用秘钥
               const options = {
                   host: parse_u.hostname,
                   port: parse_u.port || (isHttp ? 80 : 443),
                   path: parse_u.path,
                   method: 'POST',
                   json: true,
                   headers: {
                       'Content-Type': 'application/json',
                   }
               };
               let req = require(isHttp ? 'http' : 'https').request(options, function (res) {
                   let _data = '';
                   res.on('data', function (chunk) {
                       _data += chunk;
                   });
                   res.on('end', function () {
                       // 将 _data 替换为实际的数据处理逻辑
                       fn != undefined && fn(_data);
                       req.write(JSON.stringify(data));
                       req.end();
                   });
               });
           });
       };
      
    4. 在宜搭中调用上述代码。

    请注意,第三方系统的报表接口查询数据大于20s,可能是由于网络延迟、服务器响应时间较长等原因造成的。你可以优化接口查询语句或增加服务器的硬件资源来提高查询速度。

    2024-03-12 11:06:15
    赞同 展开评论 打赏
问答分类:
问答地址:
关联地址:
相关产品:
来源圈子
更多
收录在圈子:
+ 订阅
「宜搭」是云钉原生低代码平台(钉钉 PaaS - aPaaS),让企业应用搭建更简单! 帮助中小企业降本提效,加强组织的数字化自主权; 帮助大型企业释放个体创新力,助力组织创新涌现。
相关文档: 宜搭
问答排行榜
最热
最新

相关电子书

更多
宜搭 - 企业智能化应用搭建平台 立即下载
《云市场-宜搭解决方案》 立即下载
《宜搭开发手册》 立即下载