首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随用户请求一起从python中的另一个API调用多个API

随用户请求一起从python中的另一个API调用多个API
EN

Stack Overflow用户
提问于 2021-03-12 13:06:50
回答 1查看 18关注 0票数 0

我是第一次接触Flask API。我已经为我的项目构建了几个API,我通过Postman调用,同时我在Postman主体下传递JSON格式的用户请求。

例如:

代码语言:javascript
复制
@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,它可以运行这两个服务以及用户请求。我试图创建下面的脚本,但它在循环中。

代码语言:javascript
复制
@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。

EN

回答 1

Stack Overflow用户

发布于 2021-03-12 13:17:03

而不是调用GET请求,您应该直接使用带有传递参数实参的data_cleaning()和data_transformation(),否则创建第三个函数并在需要时调用它。

代码语言:javascript
复制
@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 x
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66594487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档