magento soap api
来源:互联网 发布:chrome mac 安装 编辑:程序博客网 时间:2024/05/22 13:41
SOAP: simple object access protocol;
WSDL: webservice description language;
Magento Soap V1
v1 扩展案例
step 1: 在 etc 下 新建 api.xml,内容如下
<config> <api> <resources> </resources> <acl> <resources> <all> </all> </resources> </acl> </api></config>
step 2: 添加一个资源信息(模块名,不要加namespace)
注意:在etc 下的XML文件中,不要使用namespace, 否则会报错,会把当前模块下的helper 去Mage下查找。
在 resource 下添加 method,method 中的元素有 list ,create,update,delete.info. 如下:
<config> <api> .... <resources> <customer translate="title" module="customer"> <title>Customer Resource</title> <methods> <list translate="title"module="customer"> <title>Retrive customers</title> </list> <create translate="title"module="customer"> <title>Create customer</title> </create> <info translate="title" module="customer"> <title>Retrieve customer data</title> </info> <update translate="title" module="customer"> <title>Update customer data</title> </update> <delete> <title>Delete customer</title> </delete> </methods> <faults module="customer"> </faults> </customer></resources>.... </api></config>
其中的 faults 是报错的信息。
step3 添加权限描述
<config><api>.... <acl> <resources> <customer translate="title" module="customer"> <title>Customers</title> <list translate="title" module="customer"> <title>View All</title> </list> <create translate="title" module="customer"> <title>Create</title> </create> <info translate="title" module="customer"> <title>Get Info</title> </info> <update translate="title" module="customer"> <title>Update</title> </update> <delete translate="title" module="customer"> <title>Delete</title> </delete> </customer> </resources></acl></api></config>
step 4 匹配ACL资源和API资源方法,通过添加ACL元素
<config> <api> <resources> <customer translate="title" module="customer"> <title>Customer Resource</title> <acl>customer</acl> <methods> <list translate="title" module="customer"> <title>Retrive customers</title> <acl>customer/list</acl> <method>items</method> </list> <create translate="title" module="customer"> <title>Create customer</title> <acl>customer/create</acl> </create> <info translate="title" module="customer"> <title>Retrieve customer data</title> <acl>customer/info</acl> </info> <update translate="title" module="customer"> <title>Update customer data</title> <acl>customer/update</acl> </update> <delete translate="title" module="customer"> <title>Delete customer</title> <acl>customer/delete</acl> </delete> </methods> .... </customer> </resources>.... </api></config>
由于list是PHP关键字,因此用items代替list
step 5 创建PHP API 代码
class Mage_Customer_Model_Customer_Api extends Mage_Api_Model_Resource_Abstract{ public function create($customerData) { } public function info($customerId) { } public function items($filters) { } public function update($customerId, $customerData) { } public function delete($customerId) { }}
V2 扩展案例
<v2> <resources_function_prefix> <customer>customerCustomer</customer> <customer_group>customerGroup</customer_group> <customer_address>customerAddress</customer_address> </resources_function_prefix></v2>
加在<api>
标签中
v2 PHP 代码
v1 和v2 的区别在于
v1 方法的调用形式
$params = array(array( 'status'=>array('eq'=>'pending'), 'customer_is_guest'=>array('eq'=>'1'))));$result = $client->call($sessionId, 'sales_order.list', $params);
v2 方法的调用方式
$params = array('filter' => array( array('key' => 'status', 'value' => 'pending'), array('key' => 'customer_is_guest', 'value' => '1')));$result = $client->salesOrderList($sessionId, $params);
salesOrder 就是定义的方法前缀名。
v1 URL http://magentohost/api/soap/?wsdl
v2 URL http://magentohost/api/v2_soap?wsdl=1
WSDL对于soap v1 和 soap v2 是不同的。v1 自定义开发的模块,并不需要修改 wsdl.xml 文件,v2 则需要修改 wsdl.xml 文件
magento 后台配置
system -> webservice ->soap roles ,soap user
其中在 soap user中, username 和 new api key 是获得session id的重要数据
PHP soap 方法client 调用案例
$api_url_v1 = "http://host/api/soap/?wsdl=1";$username = 'username';$password = 'passord';try {$cli = new SoapClient($api_url_v1);//retreive session id from login$session_id = $cli->login($username,$password);//call customer.list method$result = $cli->call($session_id, 'catalog_product.list',array($params));}catch (SoapFault $fault){ var_dump($fault->faultstring);}print_r($result);
在client call 中,由于有的服务端需要 通过 参数的key值来获取value,所以,以php client call 中,参数形式写成如下:
$param=array('key'=>value,'key1'=>value1)
- Magento SOAP API基础知识
- magento soap api 调用
- magento soap api
- magento soap api 列出所有的方法
- Magento WebServices SOAP API 创建和使用
- 使用customer.update 方法 ,magento 1.7.0.2 soap api bug
- Magento SOAP API V2 开放接口修改订单状态
- Create Magento SOAP account
- magento soap server 响应慢
- create magento custom api
- Magento Api 产品新建
- magento custom api configuration
- magento API 代码
- Writing Magento Custom API
- magento rest api 调用
- magento rest api 调用!
- magento rest api 调用
- magento api新增方法
- 响应式编程(Reactive Programming)介绍
- UVA 11388 GCD LCM
- 关于String的contains(null)问题
- 无人机相关
- 在xib中添加几种机型预览效果
- magento soap api
- 博士第一年,要把这些计算机基础课程学好(附教程)
- 第四章课后作业第四题
- SpringMVC源码总结(十二)ViewResolver介绍
- hibernate 遇到Source not found for 错误
- CSS的box-sizing和calc()
- Linux中文件权限与文件夹权限
- UVA 11922 Permutation Transformer (Splay 区间翻转 + 复制粘贴)
- 如何实现垂直进度条