系统学习magento二次开发,推荐小册:《Magento中文全栈二次开发 》
本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。
在Magento 2中,公共接口和API是用于与Magento 2的其他系统或第三方应用程序进行交互的关键组件。它们允许您从外部应用程序中访问Magento 2的核心功能和数据。
以下是一个简单的示例:
use Magento\Framework\Api\SearchCriteriaBuilder; use Magento\Customer\Api\CustomerRepositoryInterface; class MyCustomClass { private $customerRepository; private $searchCriteriaBuilder; public function __construct(CustomerRepositoryInterface $customerRepository, SearchCriteriaBuilder $searchCriteriaBuilder) { $this->customerRepository = $customerRepository; $this->searchCriteriaBuilder = $searchCriteriaBuilder; } public function getCustomerByEmail($email) { $searchCriteria = $this->searchCriteriaBuilder->addFilter('email', $email)->create(); $customerList = $this->customerRepository->getList($searchCriteria)->getItems(); if (count($customerList) > 0) { return $customerList[0]; } return null; } }
在上面的示例中,我们创建了一个名为 MyCustomClass 的类,并在构造函数中注入了 CustomerRepositoryInterface 和 SearchCriteriaBuilder。通过这些接口,我们可以获取指定电子邮件的客户。
值得注意的是,API和公共接口在Magento 2中使用相同的接口类型。它们只是根据使用方式和访问权限进行分类。例如,CustomerRepositoryInterface 是公共接口,因此只能用于在Magento 2中运行的代码中,而不是在外部应用程序中使用。
如果您想要使用Magento 2的API来与外部应用程序进行交互,则可以使用Web API。Web API 允许您使用HTTP请求(例如GET、POST、PUT和DELETE)来调用Magento 2的功能和服务。要使用Web API,您需要首先在Magento 2后端配置Web API访问和授权,并为每个要使用的API端点生成令牌。然后,您可以使用curl或其他HTTP客户端来调用API端点。以下是一个简单的示例:
curl -X GET "http://magento2-base-url/rest/V1/products?searchCriteria[pageSize]=10" -H "Authorization: Bearer <token>"
在上面的示例中,我们使用curl来调用Magento 2的Web API,以获取前10个产品。我们在请求标头中包含了一个有效的令牌,以便进行身份验证和授权。