未提供项目描述
项目描述
Flask-Batch
在HTTP层批量处理多个请求。 Flask-Batch受到谷歌云存储批量处理方式的启发。
它为您的API添加了一个/batch路由,该路由可以对您的API服务器端执行批量的HTTP请求。客户端使用multipart/mixed内容类型将多个请求封装在一个请求中。
安装
pip install Flask-Batch
# to include the dependencies for the batching client
pip install Flask-Batch[client]
入门
服务器
from flask import Flask
from flask_batch import add_batch_route
app = Flask(__name__)
add_batch_route(app)
# that's it!
客户端
客户端封装了一个请求会话。
from flask_batch.client import Batching
import json
alice_data = bob_data = {"example": "json"}
with Batching("https://:5000/batch") as s:
alice = s.patch("/people/alice/", json=alice_data)
bob = s.patch("/people/bob/", json=bob_data)
alice # <Response [200]>
alice.json() # {"response": "json"}
为什么选择批量处理?
通常客户端到服务器的往返时间很高。批量处理请求可以减少高RTT的惩罚,而不需要请求并行化的额外复杂性。
正确地批量处理
通常API设计者会为特定操作创建自定义的批量端点。为执行批量操作创建自定义API端点通常会导致不灵活。每个端点最终都是独特的。这意味着需要维护更多的代码,并可能出现更多的错误。
理解大批量JSON API端点可能很困难。例如,在出现错误时会发生什么?批量操作失败?继续?回滚?
在HTTP层进行批量处理会产生清晰和预期的行为,易于理解。HTTP批量处理的行为与批量中发送的每个单独请求相同。
状态
此项目处于alpha阶段。我希望最终能将其批准为flask扩展。
项目详情
关闭
Flask-Batch-0.0.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c84b51bf8d874d4e1405140e8666a0602551efce0983115a3b1bcaffceefc00a |
|
MD5 | 31dfdbce45d879c3dc2090bc25b546a4 |
|
BLAKE2b-256 | 6b2aaf2c708fd8c115f4b4fb6ad2c85be7f908cfc464e0c56b6c7792b5d31a4d |