跳转到主要内容

未提供项目描述

项目描述

Flask-Batch

Travis CI build status GitHub license Latest Version

在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 (7.9 kB 查看哈希值)

上传时间

支持者