首页 文章

在自定义模块中扩展Magento REST API

提问于
浏览
4

我想使用Magento Rest-Api将自定义数据添加到Magento表中 . 我已经在Magento数据库中添加了一个表,并使用以下链接创建了具有Rest API的模块

http://web.archive.org/web/20130512072025/http://magepim.com/news/Extending-the-Magento-REST-API-part-1_13

现在我想使用Rest API将数据添加到Magento表中...

我需要在 api.xml / api2.xmlV1.php 文件中进行更改 .

请帮助我,我使用产品api2.xml文件的参考尝试了很多代码 . 但没有运气 .

当我运行以下URL

http://magento-host/api/rest/magepim/products/count

它将执行 V1.php 文件的 _retrieve() 函数,但如何使用 PHP RestApi oauth 调用 _create() 函数

1 回答

  • 3

    magento \ app \ code \ core \ Mage \ Api2 \ Model \ Resource.php只允许创建方法的集合操作类型..所以在api2.xml文件中更改并在属性标记中设置必填字段

    Magento的\ APP \代码\社区\ MagePim \ Extapi \等\ api2.xml

    <?xml version="1.0"?>
    <config>
        <api2>
            <resource_groups>
                <extapi translate="title" module="api2">
                    <title>Custom API calls</title>
                    <children>
                        <extapi translate="title" module="api2">
                            <title>My Api</title>
                        </extapi>
                    </children>
                </extapi>
            </resource_groups>
            <resources>
                <extapi translate="title" module="api2">
                    <group>extapi</group>
                    <model>extapi/api2</model>
                    <working_model>extapi/api2</working_model>
                    <title>Custom Api</title>
                    <privileges>
                        <admin>
                            <create>1</create>
                            <retrieve>1</retrieve>
                            <update>1</update>
                            <delete>1</delete>
                        </admin>
                    </privileges>
                    <attributes>
                        <owner_id>Owner ID</owner_id>
                        <identityid>Identity ID</identityid>
                        <social_id>Social ID</social_id>
                        <status>Status</status>
                        <text>Text</text>
                        <request_timestamp>Request Time</request_timestamp>
                        <status_timestamp>Status Time</status_timestamp>
                    </attributes>
                    <routes>
                        <!-- Call For V1.php _retrieve() -->
                        <route_entity>
                            <route>/scheduler</route>
                            <action_type>entity</action_type>
                        </route_entity>
                        <!-- Call For V1.php _create() -->
                        <route_collection>
                            <route>/scheduler/create</route>
                            <action_type>collection</action_type>
                        </route_collection>
                    </routes>
                    <versions>1</versions>
                </extapi>
            </resources>
        </api2>
    </config>
    

    Magento的\ APP \代码\社区\ MagePim \ Extapi \型号\ API2 \休息\管理\ V1.php

    /**
     * Override for Magento's REST API
     */
    class Magepim_Extapi_Model_Api2_Rest_Admin_V1 extends Mage_Api2_Model_Resource {
    
        protected function _retrieve(){
            return json_encode($shedulerData);
        }
        protected function _create($shedulerData){
            return json_encode($shedulerData);
        }
        protected function _retrieveCollection(){
            return json_encode(array('method'=>'_retrieveCollection'));
        }
    ....................
    }
    

相关问题