【发布时间】:2020-09-18 04:14:58
【问题描述】:
我有一个简单的 fastApi 演示应用程序,它实现了一个功能: 通过调用名为 changeResponse 的 post api 获取不同的响应 json。 changeResponse api 只是更改了一个全局变量,另一个 api 通过同一个全局变量返回不同的响应。在本地环境中,它可以正常工作,但是当我在 docker 上构建它时,我只调用一次 changeResponse 后响应总是改变。代码如下如下:
from typing import Optional
from fastapi import FastAPI
from util import read_json
import enum
app = FastAPI()
type = "00"
@app.post("/changeResponse")
async def handle_change_download_response(param:Optional[str]):
global type
type = param
print("type is "+type)
return {"success":"true"}
@app.post("/download")
async def handle_download(param:Optional[str]):
print("get download param: "+param)
if legalDownload(param):
print("type is "+type)
return read_json.readDownloadSuccessRes(type)
else:
return read_json.readDownloadFailRes()
def legalDownload(data:str)->bool:
return True
dockerfile如下:
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7
COPY ./app /app
我除了: 调用 changeResponse 参数为 7,获取 7 的响应, 调用 changeResponse 参数为 8,获取 8 的响应。 我得到了什么: call changeResponse param is 7, get response for 7, call changeReponse 8, some time response is 7, sometime is 8, 无法预测
【问题讨论】:
-
您是如何将数据发送到 URL 的?我是说参数?
-
http://*.*.*.*/changeResponse?param=00 并使用 post 方法
-
我想知道它是怎么发生的?
标签: python python-3.x docker fastapi uvicorn