扩展magento rest api:将自定义端点链接到控制器中的自定义方法

时间:2015-09-07 09:48:45

标签: php rest magento

Magento新手继承了一个magento项目......

我有一个自定义模块,可以实现一些正常工作的新端点。

在我的api2.xml中,我将路由定义为:

<routes>
   <route_catalog_rule>
      <route>/unir/catalogrule/:id_rule</route>
      <action_type>entity</action_type>
   </route_catalog_rule>

   <route_catalog_rules_by_any_field_id>
      <route>/unir/catalogrules/:id_name/:id_value</route>
      <action_type>collection</action_type>
   </route_catalog_rules_by_any_field_id>

   <route_catalog_rule_add>
      <route>/unir/catalogrules/add</route>
      <action_type>collection</action_type>
   </route_catalog_rule_add>
</routes>

我在相应的_retrieve()中拥有相应的_retrieveCollection()_create()V1.php。到目前为止,所有工作都按预期进行。

但是......我需要为这个资源添加一个新的端点,希望由同一个控制器处理。它也可以是POST / create(通常由_create()处理),但是我想用不同的方法处理,或者至少在_create()内决定使用一个或另一个逻辑路径。

基本上,它归结为能够直接指定自定义处理程序,看起来像:

<route_catalog_rule_create>
  <route>/unir/catalogrules/create</route>
  <action_type>collection</action_type>
  <action_name>my_custom_handler</action_name>
</route_catalog_rule_create>

或者至少能够通过路径定义直接传递额外的参数,例如:

<route_catalog_rule_create>
  <route>/unir/catalogrules/add</route>
  <action_type>collection</action_type>
  <my_custom_param>collection</my_custom_param>

我想我可以检查做一些事情,比如检查pathinfo并根据那个决定...但它似乎没有清理,我希望(如果可能的话)添加到api2中的资源/路由定义。 XML。

0 个答案:

没有答案