我是第一次接触Flask API。我已经为我的项目构建了几个API,我通过Postman调用,同时我在Postman主体下传递JSON格式的用户请求。
例如:
@app.route('/data-cleaning', methods=['GET', 'POST'])
def data_cleaning():
if request.method=='GET':
user_request = request.get_json()
....
....
return X
@app.route('/data-transformation', methods=['GET', 'POST'])
def data_transformation():
if request.method=='GET':
user_request = request.get_json()
....
....
return X现在,我在Postman中分别运行这两个服务,在每个服务中,我通过在Postman Body中传递JSON来获取user_request。
现在我想创建另一个API,它可以运行这两个服务以及用户请求。我试图创建下面的脚本,但它在循环中。
@app.route("/app2",methods=['GET', 'POST'])
def app2():
# requests.get(url, params={})
if request.method == 'GET':
res = requests.get("http://127.0.0.1:5000/data-cleaning?table=outage_data", params=
{"column_name": {"punctuation": "yes","stopwords": "yes",
"lowercase":"yes","lemetization":"yes"}})
return print('process completed')在上面的代码中,我只是尝试从一个API运行另一个API,但实际上我需要运行多个API。
发布于 2021-03-12 13:17:03
而不是调用GET请求,您应该直接使用带有传递参数实参的data_cleaning()和data_transformation(),否则创建第三个函数并在需要时调用它。
@app.route('/data-cleaning', methods=['GET', 'POST'])
def data_cleaning():
if request.method=='GET':
user_request = request.get_json()
punctuation = user_request.get('punctuation')
stopwords= user_request.get('stopwords')
lowercase= user_request.get('lowercase')
lemetization= user_request.get('lemetization')
....
x = other_services({"column_name":
{"punctuation": punctuation,
"stopwords": stopwords,
"lowercase":lowercase,
"lemetization":lemetization}})
....
return x
@app.route('/data-transformation', methods=['GET', 'POST'])
def data_transformation():
if request.method=='GET':
user_request = request.get_json()
punctuation = user_request.get('punctuation')
stopwords= user_request.get('stopwords')
lowercase= user_request.get('lowercase')
lemetization= user_request.get('lemetization')
....
x = other_services({"column_name":
{"punctuation": punctuation,
"stopwords": stopwords,
"lowercase":lowercase,
"lemetization":lemetization}})
....
return x
def other_services(column_name=null):
.....
---- some operation ----
.....
return xhttps://stackoverflow.com/questions/66594487
复制相似问题