ম্যাজেন্টো ফ্রেমওয়ার্কে (Magento Framework) Custom API তৈরি এবং ব্যবস্থাপনা একটি শক্তিশালী ফিচার যা আপনাকে আপনার সাইটের বাইরের অ্যাপ্লিকেশন বা সিস্টেমের সঙ্গে যোগাযোগ করতে এবং ডেটা এক্সচেঞ্জ করতে সাহায্য করে। আপনি যখন একটি কাস্টম API তৈরি করবেন, তখন এটি ম্যাজেন্টো এর ভেতরের ডেটা এবং কার্যকলাপকে অন্য সিস্টেমের সঙ্গে ইন্টিগ্রেট করতে সক্ষম হবে, যেমন মোবাইল অ্যাপ্লিকেশন, থার্ড-পার্টি সিস্টেম, অথবা অন্য কোনো ওয়েব সার্ভিসের সাথে।
এখানে, আমরা ম্যাজেন্টো ২ তে Custom API তৈরি এবং ব্যবস্থাপনার প্রক্রিয়া বিস্তারিতভাবে আলোচনা করব।
১. Magento তে কাস্টম API তৈরি করা
ম্যাজেন্টো ২ তে কাস্টম API তৈরি করতে, আপনাকে একটি নতুন মডিউল তৈরি করতে হবে, যেটি API ক্লাস এবং এর সমস্ত কনফিগারেশন ধারণ করবে।
১.১. মডিউল তৈরি করা
প্রথমে একটি নতুন মডিউল তৈরি করুন যেখানে আপনার API থাকবে:
App/code ডিরেক্টরিতে গিয়ে নতুন মডিউল তৈরি করুন:
app/code/Custom/ApiExampleregistration.php ফাইল তৈরি করুন, যা ম্যাজেন্টোকে মডিউলটি রেজিস্টার করতে সহায়তা করবে:
<?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Custom_ApiExample', __DIR__ );module.xml ফাইল তৈরি করুন, যাতে ম্যাজেন্টো মডিউলের নাম এবং সংস্করণ জানে:
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Custom_ApiExample" setup_version="1.0.0"/> </config>
১.২. API ইন্টারফেস তৈরি করা
API তৈরি করতে আপনাকে প্রথমে একটি ইন্টারফেস তৈরি করতে হবে। এটি Api ফোল্ডারে রাখা হবে। উদাহরণস্বরূপ, আমরা একটি গ্রাহক সম্পর্কিত API ইন্টারফেস তৈরি করতে পারি।
Api/CustomerRepositoryInterface.php ফাইল তৈরি করুন:
<?php namespace Custom\ApiExample\Api; interface CustomerRepositoryInterface { /** * Retrieve customer data by customer ID * * @param int $customerId * @return \Magento\Customer\Api\Data\CustomerInterface */ public function getCustomerById($customerId); }
এখানে, আমরা একটি getCustomerById মেথড ডিফাইন করেছি যা গ্রাহকের তথ্য নিয়ে আসবে।
১.৩. API ক্লাস তৈরি করা
এখন, API ইন্টারফেসে সংজ্ঞায়িত মেথডটি বাস্তবায়ন (implement) করতে হবে। Model ফোল্ডারে এটি করতে হবে।
Model/CustomerRepository.php ফাইল তৈরি করুন:
<?php namespace Custom\ApiExample\Model; use Custom\ApiExample\Api\CustomerRepositoryInterface; use Magento\Customer\Api\CustomerRepositoryInterface as MagentoCustomerRepositoryInterface; class CustomerRepository implements CustomerRepositoryInterface { protected $customerRepository; public function __construct(MagentoCustomerRepositoryInterface $customerRepository) { $this->customerRepository = $customerRepository; } public function getCustomerById($customerId) { return $this->customerRepository->getById($customerId); } }
এখানে, আমরা Magento এর বিল্ট-ইন CustomerRepositoryInterface ব্যবহার করেছি গ্রাহকের তথ্য ফেরত দিতে।
১.৪. API রাউট এবং কনফিগারেশন
Magento তে API রাউট এবং কনফিগারেশন সেট করতে etc/webapi.xml ফাইল ব্যবহার করা হয়।
etc/webapi.xml ফাইল তৈরি করুন:
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Webapi/etc/webapi.xsd"> <router id="rest"> <route url="/V1/customers/:customerId" method="GET"> <service class="Custom\ApiExample\Api\CustomerRepositoryInterface" method="getCustomerById"/> <resources> <resource ref="Magento_Customer::customer"/> </resources> </route> </router> </config>
এখানে, আমরা একটি RESTful API রাউট তৈরি করেছি যেখানে :customerId প্যারামিটারটি গ্রাহকের আইডি নির্দেশ করে এবং GET মেথড ব্যবহার করে গ্রাহকের তথ্য ফেরত দেয়।
২. API সিকিউরিটি কনফিগার করা
Magento তে API এর নিরাপত্তা নিশ্চিত করতে, আপনাকে access control কনফিগার করতে হবে। এটি etc/acl.xml ফাইলে করা যায়, যেখানে আপনি কনফিগার করেন কে-কোনো API অ্যাক্সেস করতে পারবে।
২.১. ACL (Access Control List) কনফিগারেশন
etc/acl.xml ফাইল তৈরি করুন:
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Acl/etc/acl.xsd"> <resources> <resource id="Magento_Backend::admin"> <resource id="Custom_ApiExample::customer_api" title="Customer API" /> </resource> </resources> </config>
এখানে, Custom_ApiExample::customer_api সেকশনে গ্রাহক API অ্যাক্সেসের জন্য একটি সুরক্ষা প্রদান করা হয়েছে।
৩. কাস্টম API পরীক্ষা করা
একবার কাস্টম API তৈরি করা হলে, এটি RESTful API হিসেবে অ্যাক্সেস করা যাবে। আপনাকে Postman বা অন্যান্য API টেস্টিং টুল ব্যবহার করে আপনার API পরীক্ষা করতে হবে।
৩.১. API টেস্ট করার জন্য Postman ব্যবহার
- URL:
http://your-magento-site/rest/V1/customers/{customerId} - Method: GET
- Authorization: API Key বা OAuth token ব্যবহার করে।
আপনি যদি সঠিকভাবে কনফিগার করেন, তবে API থেকে গ্রাহকের তথ্য সফলভাবে রিটার্ন হবে।
৪. সারাংশ
Magento তে Custom API তৈরি এবং ব্যবস্থাপনা একটি শক্তিশালী প্রক্রিয়া, যা আপনার সাইটে বাইরের অ্যাপ্লিকেশন বা সিস্টেমের সঙ্গে ডেটা এক্সচেঞ্জের সুযোগ দেয়। কাস্টম API তৈরি করতে, আপনাকে একটি নতুন মডিউল তৈরি করতে হবে, একটি API ইন্টারফেস এবং ক্লাস তৈরি করতে হবে, এবং একটি রাউট কনফিগার করতে হবে। এরপর, API সিকিউরিটি কনফিগার করে অ্যাক্সেস নিয়ন্ত্রণ করা যায়। Postman ব্যবহার করে API পরীক্ষা করা এবং তার সঠিক কার্যকারিতা নিশ্চিত করা খুবই গুরুত্বপূর্ণ।
Read more