使用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.py和api_example.py)。

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

相关推荐
代码山河7 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
在世修行7 小时前
智学文枢:题目流水线
python·多线程·状态机·pyside
C^h8 小时前
c++ string
开发语言·c++
raindayinrain8 小时前
c++高性能--原子操作,无锁编程,操作顺序
开发语言·c++·性能优化
梯度下降者8 小时前
零基础入门Python 爬虫
爬虫·python·数据分析·入门指南·webcrawler
学逆向的8 小时前
C++ 合并命名空间
开发语言·c++·网络安全
Zhao-Jichao8 小时前
VS2026 打包 C++ 程序生成 EXE,借助 Installer Project 扩展工具
开发语言·c++
学逆向的9 小时前
C 局部静态变量
c语言·开发语言·网络安全
大都督会赢的9 小时前
C++第一节课
开发语言·c++
“AI国潮设计-小江”9 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc