在扩展Magento Rest API的同时启用多个端点/路由

时间:2014-09-04 18:50:31

标签: php api rest magento

我想为我的自定义api设置两个端点

  • 在magento购物车中创建自定义规则(网址= magento.com/coupondemo/generate
  • 为特定规则(网址= magento.com//coupondemo/rules/:rule_id/codes
  • 创建优惠券代码

我已经跟随Magento中的this教程和优惠券代码,我的代码也可以在Magento中创建规则。但是,我不知道如何在我的自定义rest api中创建两个端点,因为我只能创建一个端点。

我在api2.xml中有以下路由

<routes>
    <route_collection>
        <route>/coupondemo/generate</route>
        <action_type>entity</action_type>
    </route_collection>
    <route_collection>
        <route>/coupondemo/rules/:rule_id/codes</route>
        <action_type>collection</action_type>
    </route_collection>
</routes>

我的v1.php的骨架如下

<?php
/* Coupon AutoGen REST API
*
* @category CouponDemo
* @package CouponDemo_AutoGen
* @author Chuck Hudson (used with permission). For more recipes, see Chuck's book http://shop.oreilly.com/product/0636920023968.do
*/

class CouponDemo_AutoGen_Model_Api2_Coupon_Rest_Admin_V1 extends CouponDemo_AutoGen_Model_Api2_Coupon
{
    /**
     * Generate one or more coupon codes using the Generate Coupons rule defined in Magento.
     * Expected parameters are:
     * {
     *    'qty': int, - number of coupon codes to instruct Magento to generate
     *    'length': int, - length of each generated coupon code
     *    'format': string, - alphanum (for alphanumeric codes), alpha (for alphabetical codes), and num (for numeric codes)
     * }
     *
     * @param array $couponData
     * @return string|void
     */
    protected function _create($couponData)
    {

    }

    protected function _retrieveCollection()
    {        

    }

    protected function _retrieve($couponDatas)
    {

    }
}

问题是这两个路由都调用了v1.php中的_create方法。我希望第一个路由调用一个自定义方法,并将数组作为参数。那我怎么能这样做呢?

我尝试使用此路线

<!-- Call For V1.php _retrieve() -->
<route_entity_count>
    <route>/coupondemo/generate</route>
    <action_type>entity</action_type>
</route_entity_count>

调用_retrieve方法,但它不允许传入参数。 那我该如何处理第一条路线?

0 个答案:

没有答案