我在 REST 接口中触发是一个事件,但是相对应的 Observer 并没有触发,也没有异常错误日志。 但是通过页面来触发这个事件,Observer 是正常的,找了相关资料,原来 rest 接口的事件配置文件(event.xml),需要单独放在 webapi_rest 目录下,同 rest 接口的 di 配置一样。
在 Magento中,一个模块可以有多个 events.xml 文件:
| Location | Where do the handlers are triggered |
| :--------------------------- | :----------------------------------------------------------- |
| etc/events.xml
| Everythere. |
| etc/adminhtml/events.xml
| In admin interface only. |
| etc/frontend/events.xml
| In frontend interface only. |
| etc/crontab/events.xml
| While handling scheduled ([cron][4]) jobs only. |
| etc/setup/events.xml
| While Magento or extensions are being [installed][6] or [upgraded][7]. |
| etc/webapi_rest/events.xml
| While handling [REST][9] [API][10] requests. |
| etc/webapi_soap/events.xml
| While handling [SOAP][12] [API][13] requests. |