【功能实践】DataEase V2 接入需要动态登录码 token 的 API 数据源详细教程和示例


飞致云 发布于 2024-09-29 / 104 阅读 / 0 评论 /
背景: API 数据源需要对接登录接口,获取 token 值,然后周期性动态更新该 token 值,来接入 API 数据源。 例如:公司需要登录 /login 接口,获取校验码 token ,接口过期时间为 10s ,需要根据 token 获取 API 中的数据。 实践过程: 环境准备:API 数据

背景:

API 数据源需要对接登录接口,获取 token 值,然后周期性动态更新该 token 值,来接入 API 数据源。

例如:公司需要登录 /login 接口,获取校验码 token ,接口过期时间为 10s ,需要根据 token 获取 API 中的数据。

实践过程:

环境准备:API 数据源的参数功能需 DataEase v2.9.0 以上,实验环境为 v2.10.1

实践需求:根据数据登录接口 /login  ,然后根据 token 动态获取 API 数据。

首先搭建测试 API (已有自己的登录和数据接口可以跳过这步,换成自己的)

测试环境(可选):python 3.12

pip install Flask Flask-JWT-Extended
 
from flask import Flask, request, jsonify
from flask_jwt_extended import JWTManager, create_access_token, jwt_required, get_jwt_identity
 
app = Flask(__name__)
 
# 配置JWT
app.config['JWT_SECRET_KEY'] = 'DataEase@123456'  # 密钥
jwt = JWTManager(app)
 
# 模拟用户数据库
users = {
    "admin": "DataEase@123456",
    "user1": "DataEase@123456"
}
 
@app.route('/login', methods=['POST'])
def login():
    username = request.json.get('username')
    password = request.json.get('password')
 
    # 验证用户名和密码
    if username in users and users[username] == password:
        # 创建访问 token
        access_token = create_access_token(identity=username)
        # {
        #     "access_token": "your_generated_access_token"
        # }
        return jsonify(access_token="Bearer "+access_token), 200
    else:
        return jsonify({"msg": "Bad username or password"}), 401
 
@app.route('/data', methods=['GET'])
@jwt_required()
def get_data():
    current_user = get_jwt_identity()
    # 根据当前用户返回一些数据
    data = {
        "message": f"This is private data for {current_user}",
        "data": {
            "商品":"坚果炒货",
            "单价":1
        }
    }
    # Authorization: Bearer access_token
    return jsonify(data), 200
 
if __name__ == '__main__':
    app.run(debug=True,port=8101,host='0.0.0.0')

1.创建 API 数据源

2.填好数据,点接口参数,点击添加

3.填写参数

4.填写信息

5.点击校验,显示成功

6.解析参数,点击保存:

7.保存后显示解析成功:

8.此时点击数据表,点击 “添加” ,在请求头中,增加 Authorization 字段,选择参数(或者自定义,用${params} 来绑定)

此时点击下一步即可预览数据。提示:如果需要,可以上一步配置下查询超时和动态时间。

9.点击下一步

10.配置数据更新:

此时可以动态更新校验码持续获取数据,创建数据集,生成自己的图表了。



是否对你有帮助?