使用Flask框架实现 webhook 和 api,并对比区别

实现一个Webhook接收端和一个简单的API端点

Webhook 示例

复制代码
from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/webhook', methods=['POST'])
def webhook():
    # 获取请求中的JSON数据
    data = request.json
    
    # 打印接收到的数据
    print(f"Received webhook data: {data}")
    
    # 返回响应
    return jsonify({"status": "success", "message": "Webhook received successfully"}), 200

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

API 示例

复制代码
from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/api/data', methods=['GET'])
def api_data():
    # 定义简单的API数据
    data = {
        "id": 1,
        "name": "Sample Data",
        "description": "This is a sample API response."
    }
    
    # 返回JSON响应
    return jsonify(data), 200

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

对比

  1. 触发机制:

    • Webhook : 被动触发。当某个事件发生时,外部服务会主动向Webhook URL发送请求。在上面的例子中,/webhook路由会在接收到POST请求时处理数据。
    • API : 主动请求。客户端需要通过HTTP请求来获取数据。在API示例中,/api/data路由需要客户端发送GET请求来获取数据。
  2. 数据流向:

    • Webhook : 数据从第三方服务流向我们自己的应用。在Webhook示例中,我们假设某个服务向我们的/webhook端点发送数据。
    • API : 数据从我们的应用流向客户端。在API示例中,客户端请求我们的/api/data端点来获取数据。
  3. 使用场景:

    • Webhook: 适用于需要实时响应某些事件的场景,如支付通知、GitHub事件等。
    • API: 适用于客户端主动请求数据或服务的场景,如获取用户信息、查询数据库等。

如何运行

  1. 确保安装Flask,可以通过以下命令安装:

    复制代码
    pip install Flask
  2. 将Webhook和API示例分别保存为两个Python文件(如webhook_example.pyapi_example.py)。

  3. 启动两个示例,分别监听不同的端口(如5000和5001),然后可以使用工具如Postman测试API和Webhook的功能。

相关推荐
兵慌码乱5 小时前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei8 小时前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python
aqi0014 小时前
15天学会AI应用开发(八)使用向量数据库实现RAG功能
人工智能·python·大模型·ai编程·ai应用
Csvn15 小时前
`functools.lru_cache` —— 一行代码搞定缓存加速
后端·python
金銀銅鐵1 天前
[Python] 从《千字文》中随机挑选汉字
后端·python
cup111 天前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill
aqi002 天前
15天学会AI应用开发(七)有了大模型为什么还要引入RAG
人工智能·python·大模型·ai编程·ai应用
金銀銅鐵2 天前
用 Python 实现 Take-Away 游戏
python·游戏