甜牙/magento2-module-webhook

此包已被废弃,不再维护。未建议替代包。

Magento 2 Webhook

安装: 13

依赖者: 0

建议者: 0

安全: 0

星标: 46

关注者: 30

分支: 15

类型:magento2-module

0.2.0 2015-09-17 13:39 UTC

This package is not auto-updated.

Last update: 2020-08-25 15:05:34 UTC


README

注意: 这是一款 alpha 软件且不应在生产环境中使用,直到 v1.0.0 版本。

Magento 2 Webhook

Preview

此模块为 Magento 2 事件提供 Webhook。受到 Alan KentMagento 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请求!