【问题标题】:Calling multiple API's from another API in python along with user requests从 python 中的另一个 API 调用多个 API 以及用户请求
【发布时间】:2021-06-10 03:38:12
【问题描述】:

我是 Flask API 的新手。我为我的项目构建了几个 API,我通过 Postman 调用这些 API,并在 Postman Body 下以 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。

【问题讨论】:

    标签: python-3.x api flask


    【解决方案1】:

    而不是调用 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 x
        
    

    【讨论】:

      猜你喜欢
      • 2021-05-15
      • 2016-05-19
      • 1970-01-01
      • 2018-12-03
      • 2013-08-15
      • 1970-01-01
      • 2021-06-16
      • 2020-12-08
      • 2019-11-16
      相关资源
      最近更新 更多