HTTP 对大数据 POST 请求的响应

问题描述 投票:0回答:1

我有一个使用 Python 中的 FastAPI 实现的服务器,并且我通过 POST 请求向服务器发送大数据(~2 GB)。一旦请求在服务器端得到处理,我想向客户端返回 201“已创建”响应。 201 响应应该有一个正文,所以我不应该发送一个空正文的响应 (https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST),但在同时,我不想发回新创建的资源,因为它太大了,并且客户端在 POST 请求时不需要该资源。或者,我很想响应 204“无内容”,但这似乎不是成功 POST 请求的推荐响应。 那么假设发送了 201 响应,响应正文应该是什么,以避免无故发回大量数据?

这是描述我的问题的最小代码,当前返回带有空正文的 201 响应:

from fastapi import FastAPI, HTTPException, Response, status

app = FastAPI()


@app.post("/data", status_code=status.HTTP_201_CREATED)
async def send_data(data, response: Response):
    try:
        # process data on the server
        # ...
        pass
    except Exception as e:
        raise HTTPException(status.HTTP_500_INTERNAL_SERVER_ERROR, e)
    return response  # response with empty body
python http fastapi httpresponse
1个回答
0
投票

https://fastapi.tiangolo.com/reference/response/根据文档,你不能只根据需要设置response.body(或response.content)和response.status_code并返回它

© www.soinside.com 2019 - 2024. All rights reserved.