测试数据--模拟接口返回数据

说明:当在测试过程中,发现第三方接口在测试环境访问不上的时候,可以通过模拟接口返回测试数据,使测试能够继续进行。

from flask import Flask, request, jsonify
import json
import  os
app = Flask(__name__)

# 示例数据存储(模拟数据库)
tokens = {
    "f9212cf121ea2a09ec5b2d60fa5e04a3_21c133fe7d271b960d3fbe8a701fa8f3": {
        "user": "admin",
        "expires_in": 3600
    }
}


# GET 请求示例:获取欢迎信息
@app.route('/api/welcome', methods=['GET'])
def welcome():
    """返回欢迎信息"""
    response = {
        "code": 200,
        "message": "Welcome to Dify API Gateway",
        "data": {
            "version": "1.0",
            "docs": "http://your-domain.com/docs"
        }
    }
    return jsonify(response)


# GET 请求示例:生成Token(带参数验证)
@app.route('/api/gateway/generateToken', methods=['GET'])
def generate_token():
    """模拟Token生成接口"""
    # 从URL参数获取用户名(模拟验证)
    username = request.args.get('username', default='guest')

    if username == 'unauthorized':
        return jsonify({"code": 401, "message": "Unauthorized"}), 401

    response = {
        "code": 20000,
        "message": "成功",
        "data": {
            "token": "f9212cf121ea2a09ec5b2d60fa5e04a3_21c133fe7d271b960d3fbe8a701fa8f3",
            "expires_in": 3600
        }
    }
    return jsonify(response)


# POST 请求示例:验证Token
@app.route('/api/gateway/verifyToken', methods=['POST'])
def verify_token():
    """模拟Token验证接口"""
    # 从JSON body获取数据
    data = request.get_json()
    if not data or 'token' not in data:
        return jsonify({"code": 400, "message": "Bad Request: token required"}), 400

    # 验证Token
    token = data['token']
    if token in tokens:
        return jsonify({
            "code": 20000,
            "message": "Token有效",
            "data": tokens[token]
        })
    else:
        return jsonify({"code": 403, "message": "Invalid Token"}), 403


# POST 请求示例:创建知识库(带JSON参数和错误处理)
@app.route('/api/datasets', methods=['POST'])
def create_dataset():
    """模拟创建知识库接口"""
    required_fields = ['name', 'description']
    data = request.get_json()

    # 参数验证
    if not all(field in data for field in required_fields):
        return jsonify({
            "code": 400,
            "message": f"缺少必要字段: {required_fields}"
        }), 400

    # 模拟创建操作
    new_dataset = {
        "id": "dataset-" + os.urandom(4).hex(),
        "name": data['name'],
        "description": data.get('description', ''),
        "created_at": "2023-10-01T00:00:00Z"
    }

    return jsonify({
        "code": 201,
        "message": "创建成功",
        "data": new_dataset
    }), 201  # 201 Created 状态码


if __name__ == '__main__':
    app.run(port=6688, debug=True, host='0.0.0.0')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值