python-flask流式接口定义

在研发工作中,为了减少接口耗时,部分接口的协议会约定流式返回数据。当对调用流式接口的接口进行测试时,需要模拟下游流式接口的各种可能返回,而这个与一般意义上接口返回的模拟不同之处在于,还要考虑包的延时。因此,本文记录一下,如何使用python编写1个流式返回数据接口。

接口定义示例:

from flask import Flask, Response
import json
import time


app = Flask(__name__)

# 这里定义接口返回的流式数据
mock_data = [
[json.dumps({"data": {}, "status": 0}), 10],
[json.dumps({"data": {}, "status": 0}), 1]
]

@app.route("/api", methods=["post"])
def process():
   """
   /api接口定义
   """
   def generate():
       """
        流式返回数据
       """
       for each in mock_data:
          v = each[0]
          t = each[1]
          yield v + "\r\n"
          if t > 0:
             time.sleep(t)
       yield "0\r\n\r\n"
    return Response(generate(), mimetype="text/plain")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值