借助 POST 方法从一个 api 到另一 api 获取回调

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

我正在编写 api1,需要获取从 api2 到 api1 的回调,我将从 api2 获得响应,这个 api2 响应我将在 api1 中使用,我该怎么做..?

我正在 python 中尝试这个,所以我需要在 api1 for 循环中获取 api2 响应,不确定当我使用 api1 时如何从 api2 获得响应。

python api callback
1个回答
0
投票

如果我正确理解了问题,那么你可以尝试这种方法:

api1
将向
POST
发出
api2
请求。
api2
将处理请求并发回响应
api1
。 然后,
api1
将在后续处理中使用
api2
的响应。

一些示例代码:

## api2.py:

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/api2_endpoint', methods=['POST'])
def api2_endpoint():
    data = request.get_json()
    # Process the data (but just echoing it back for this example)
    return jsonify({'message': 'Response from API2', 'data': data})

if __name__ == '__main__':
    app.run(port=5001)
## api1.py:

import requests
from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/api1_endpoint', methods=['GET'])
def api1_endpoint():
    # Data you want to send to api2
    data = {"key": "value"}
    response = requests.post('http://localhost:5001/api2_endpoint', json=data)
    api2_response = response.json()
    
    # Use api2_response in api1 processing
    # For this example, let's just send it back as the response for api1
    return jsonify(api2_response)

if __name__ == '__main__':
    app.run(port=5000)

然后按照以下步骤操作

  • 通过运行 python api2.py 启动 api2。
  • 在新终端中,通过运行 python api1.py 启动 api1。
  • 发送 GET 请求到 http://localhost:5000/api1_endpoint。您可以使用浏览器或像curl这样的工具来完成此操作。
  • api1 将向 api2 发出 POST 请求,然后 api2 会做出响应。
  • api1 将在处理中使用 api2 的响应(在本例中,它只是将其发送回客户端)。
© www.soinside.com 2019 - 2024. All rights reserved.