甜牙 / magento2-module-webhook
Magento 2 Webhook
Requires
- php: ~5.4.11|~5.5.0|~5.6.0
- magento/framework: 1.0.0-beta
- magento/magento-composer-installer: *
- magento/module-backend: 1.0.0-beta
- magento/module-store: 1.0.0-beta
This package is not auto-updated.
Last update: 2020-08-25 15:05:34 UTC
README
注意: 这是一款 alpha 软件且不应在生产环境中使用,直到 v1.0.0 版本。
Magento 2 Webhook
此模块为 Magento 2 事件提供 Webhook。受到 Alan Kent 的 Magento 2 Webhook 博客文章的启发,该文章提到了将 Webhook 引入 Magento 2 核心的大致时间表。
更好的 Webhook 支持已在待办事项列表中,但目前在 Magento 2 GA 中没有保证。
我们希望社区可以通过此模块推动这项工作的进展。
入门
通过 composer 安装
composer require sweettooth/magento2-module-webhook
将 SweetTooth_Webhook
添加到您的 app/etc/config.php
<?php return array ( 'modules' => array ( // // Bunch of other modules // 'SweetTooth_Webhook' => 1, ), );
运行数据库迁移
php bin/magento setup:upgrade
支持的 Webhook
现在可用
- 客户更新
- 客户删除
- 订单更新
- 订单删除
- 产品更新
- 产品删除
待办事项
- 客户创建
- 订单创建
- 产品创建
- 其他资源的 CRUD 操作
路线图和讨论区域
异步 Webhook (RFC)
没有异步 Webhook,此模块对生产环境几乎无用 - 依赖于第三方系统的风险太大,无法同步执行。执行异步任务的最佳实践是将任务排队到内存存储(redis、memcache 等),然后让后台工作进程取走任务并执行,同时同步请求立即返回。由于 Magento 2 没有本地的排队功能,我们最好的选择可能是将数据库用作“队列”(“你在亵渎!”你说。冷静,magento 已经在通讯模块中这样做了),然后使用 cron 每分钟取走一次任务。
序列化 (RFC)
目前 Webhook 负载的序列化非常基础,只是调用模型的 getData()
。这很糟糕,因为它将暴露敏感信息,如密码散列等。更好的策略是为每个资源创建一个序列化器。更好的策略是如果我们可以重用 REST API 的序列化器,那么我们的 Webhook 数据将具有与 API 相同的 json 结构。砰。
可扩展性
将此模块做成可扩展的,以便其他模块可以添加可以 webhook 的事件,这将非常酷。
通过 API 创建 Webhook
这是一个非常合法的使用案例。一个拥有商店API访问权限的应用可能希望注册webhooks以接收特定资源的CRUD事件,否则他们可能需要每隔x小时进行轮询。Shopify和Bigcommerce都有这个端点,真是太好了。
数据格式
我们可能有一天需要支持XML。叹息
贡献
提交一个pull请求!