51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

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

背景: {#%E8%83%8C%E6%99%AF%EF%BC%9A}

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

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

实践过程: {#%E5%AE%9E%E8%B7%B5%E8%BF%87%E7%A8%8B%EF%BC%9A}

环境准备: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.配置数据更新:

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



赞(0)
未经允许不得转载:工具盒子 » 【功能实践】DataEase V2 接入需要动态登录码 token 的 API 数据源详细教程和示例