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

时间:2014-03-06 12:21:47

标签: php api magento rest oauth

我想使用Magento Rest-Api将自定义数据添加到Magento表中。 我已经在Magento db中添加了一个表,并使用以下链接

创建了具有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文件的参考尝试了很多代码。但没有运气。

当我运行以下网址

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

它将执行V1.php文件的_retrieve()功能,但如何使用_create()

来调用PHP RestApi oauth功能

1 个答案:

答案 0 :(得分:3)

的magento \应用\代码\核心\法师\ API2 \模型\ Resource.php 只允许创建方法的集合操作类型..所以在api2.xml文件中更改并在属性标记

中设置必填字段

的magento \应用\代码\社区\ 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 \应用\代码\社区\ 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'));
    }
....................
}