我想使用Magento Rest-Api将自定义数据添加到Magento表中。 我已经在Magento db中添加了一个表,并使用以下链接
创建了具有Rest API的模块现在我想使用Rest API将数据添加到Magento表中......
我需要在api.xml
/ api2.xml
或V1.php
文件中更改内容。
请帮助我,我使用产品api2.xml文件的参考尝试了很多代码。但没有运气。
当我运行以下网址
时http://magento-host/api/rest/magepim/products/count
它将执行V1.php
文件的_retrieve()
功能,但如何使用_create()
PHP RestApi oauth
功能
答案 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'));
}
....................
}