เริ่มต้นใช้งาน Magento Web API (REST & SOAP)
เผยแพร่แล้ว: 2020-10-06กรอบงาน Magento 2 Web API เปิดโอกาสให้ผู้ใช้สร้างบริการใหม่ที่สามารถสื่อสารกับโมดูลของบุคคลที่สาม Magento 2 รองรับบริการเว็บ REST และ SOAP ตามการดำเนินการ CRUD (สร้าง อ่าน อัปเดต และลบ)
ในบทความนี้ เราจะอธิบายขั้นตอนเริ่มต้นของการใช้ Magento 2 API API เหล่านี้ช่วยเพิ่มความเร็วในการประมวลผลและอำนวยความสะดวกในการส่งข้อมูล เช่น ผลิตภัณฑ์ ลูกค้า หรือคำสั่งซื้อ ตลอดจนโอนไปยังระบบของบุคคลที่สาม นอกจากนี้ยังช่วยให้คุณจัดการสินค้าคงคลัง
การทำให้กระบวนการเป็นอัตโนมัติ การใช้ API ช่วยให้คุณเขียนโค้ดน้อยลง
สารบัญ
- Magento Web API คืออะไร
- คุณสามารถทำอะไรกับ Magento Web API ได้บ้าง
- เริ่มต้นใช้งาน: ด้วย Magento 2 Rest API
- สร้างผู้ใช้บริการเว็บใน Magento 2
- การตรวจสอบสิทธิ์ Magento 2 REST API
- รับโมดูลโดยใช้ REST API ใน Magento 2
- ใช้บริการสบู่
- บริการ SOAP ― การตรวจสอบสิทธิ์โดยใช้ Magento 2
- คำพูดสุดท้าย
Magento Web API คืออะไร
Magento web API นั้นเข้าใจง่ายมากสำหรับนักพัฒนาที่ต้องการใช้บริการเว็บที่ช่วยสื่อสารกับระบบ Magento คุณลักษณะเหล่านี้เป็นกุญแจสำคัญสำหรับ API:
- Magento 2 รองรับทั้ง REST (Representational State Transfer) และ SOAP (Simple Object Access Protocol)
- มีการตรวจสอบสิทธิ์สามประเภท: 1) OAuth 1.0a สำหรับการตรวจสอบสิทธิ์แอปพลิเคชันบุคคลที่สาม 2) วิธีการสร้างโทเค็นสำหรับการตรวจสอบสิทธิ์แอปพลิเคชันมือถือ และ 3) ข้อมูลรับรองการเข้าสู่ระบบสำหรับการดูแลระบบและการยืนยันลูกค้า
- คุณสามารถกำหนดค่า Magento หรือ Web API ของบริษัทอื่นได้โดยการเขียน XML สองสามบรรทัด
- รองรับการกรองฟิลด์ของเว็บ API ที่สงวนการตอบสนองมือถือ
- เฟรมเวิร์กปัจจุบันอิงตาม CRUD (สร้าง อ่าน อัปเดต ลบ) และรูปแบบการค้นหา
คุณสามารถทำอะไรกับ Magento Web API ได้บ้าง
API ช่วยให้โมดูลต่างๆ สื่อสารกัน สามารถใช้เพื่อดำเนินการได้หลากหลาย ตัวอย่างเช่น:
- คุณสามารถสร้างร้านค้าออนไลน์โดยใช้ Magento และเชื่อมต่อกับระบบจริง เช่น POS (Point of Sale) เพื่อควบคุมสินค้าคงคลังทั่วโลก
- ผสานรวมกับระบบแบ็กเอนด์ CRM (Customer Relationship Management) หรือ ERP (Enterprise Resource Planning) ได้อย่างง่ายดาย เช่น Salesforce, Microsoft Dynamics หรือซอฟต์แวร์เสียงอื่นๆ
- ช่วยในการเชื่อมต่อกับ CMS (ระบบจัดการเนื้อหา)
- คุณยังสามารถสร้างวิดเจ็ต JavaScript บนแบ็กเอนด์ Magento (แผงการดูแลระบบ) หรือหน้าร้าน Magento
เริ่มต้นใช้งาน: ด้วย Magento 2 Rest API
ในการสร้างบทบาทบริการเว็บใน Magento 2 ให้ทำตามขั้นตอนง่าย ๆ เหล่านี้:
1.ลงชื่อเข้าใช้แผงการดูแลระบบ Magento 2
2. ไปที่ ระบบ >> บทบาทของผู้ใช้ และคลิกปุ่ม เพิ่มบทบาทใหม่
3. ป้อนชื่อ บทบาท
4. ในช่อง Your Password ให้ป้อนรหัสผ่านปัจจุบันของ Magento 2 Admin
5. ทางด้านซ้ายมือ คลิก ทรัพยากรของบทบาท ภายใต้ การเข้าถึงทรัพยากร ให้เลือกเฉพาะสิ่งที่จำเป็นสำหรับบริการเว็บของคุณ
6. เมื่อเสร็จแล้ว ให้กด บันทึกบทบาท
สร้างผู้ใช้บริการเว็บใน Magento 2
สร้างผู้ใช้ใหม่สำหรับบทบาทที่สร้างขึ้นใหม่โดยทำตามขั้นตอนเหล่านี้:
1.ไปที่ ระบบ >> ผู้ใช้ทั้งหมด แล้วคลิก เพิ่มผู้ใช้ใหม่
2. ป้อนข้อมูลที่จำเป็น รวมทั้ง ชื่อผู้ใช้ , ชื่อ และ นามสกุล , อีเมล และ รหัสผ่าน
3. ทางด้านซ้ายมือ คลิก บทบาทของผู้ใช้ จากนั้นเลือกบทบาทที่สร้างขึ้นใหม่ เมื่อเสร็จแล้วให้คลิกปุ่ม บันทึกผู้ใช้
การตรวจสอบสิทธิ์ Magento 2 REST API
ที่นี่ ฉันจะตรวจสอบสิทธิ์ REST API ผ่านวิธีการตรวจสอบโทเค็น สิ่งนี้เกี่ยวข้องกับการส่งชื่อผู้ใช้และรหัสผ่านในการเชื่อมต่อเริ่มต้น และรับโทเค็นที่จะบันทึกไว้ในตัวแปรสำหรับการโทรเพิ่มเติม
<?php //API URL for authentication $apiURL="http://magento-91647-257956.cloudwaysapps.com/index.php/rest/V1/integration/admin/token"; //parameters passing with URL $data = array("username" => "username", "password" => "********"); $data_string = json_encode($data); $ch = curl_init($apiURL); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Content-Length: ".strlen($data_string))); $token = curl_exec($ch); //decoding generated token and saving it in a variable $token= json_decode($token); ?>
โปรดทราบ: ชื่อผู้ใช้ & รหัสผ่านถูกใช้เป็นตัวอย่าง
รับโมดูลโดยใช้ REST API ใน Magento 2
คุณสามารถดึงข้อมูลโดยใช้ Magento 2 REST API นี่คือรายการทั้งหมดของ REST API สำหรับ Magento EE และ CE
<?php //Using above token into header $headers = array("Authorization: Bearer ".$token); //API URL to get all Magento 2 modules $requestUrl='YourgeneratedUrl'; $ch = curl_init($requestUrl); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); //decoding result $result= json_decode($result); //printing result print_r($result); ?>
ในโค้ดด้านบนนี้ ฉันได้ส่งโทเค็น (ซึ่งถูกดึงมาก่อนหน้านี้) ด้วย API URL เพื่อรับโมดูลทั้งหมดที่ติดตั้งในร้านค้า Magento 2
นี่คือรหัสที่สมบูรณ์
<?php //API URL for authentication $apiURL="URL"; //parameters passing with URL $data = array("username" => "username", "password" => "*********"); $data_string = json_encode($data); $ch = curl_init($apiURL); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Content-Length: ".strlen($data_string))); $token = curl_exec($ch); //decoding generated token and saving it in a variable $token= json_decode($token); //******************************************// //Using above token into header $headers = array("Authorization: Bearer ".$token); //API URL to get all Magento 2 modules $requestUrl='YourURL'; $ch = curl_init($requestUrl); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); //decoding result $result= json_decode($result); //printing result print_r($result); ?>
ใช้บริการสบู่
ก่อนที่เราจะเข้าสู่บริการ SOAP สิ่งสำคัญคือต้องเรียนรู้เกี่ยวกับหลักการตั้งชื่อของ Magento:
- คุณต้องใช้ CamelCase ในการตั้งชื่อบริการ ตัวอย่างเช่น MyFirstModule
- สตริง "บริการ" ถูกละไว้ หมายความว่าคุณใช้งานไม่ได้
- คำนำหน้า “Magento” และส่วนต่อท้าย “Interface” ก็เพิ่มขึ้นเช่นกัน
- หากชื่อ 'บริการ' ของคุณเหมือนกับชื่อ 'โมดูล' ชื่อโมดูลนั้นจะถูกละเว้น
ดังนั้น อย่าลืมคำนึงถึงประเด็นเหล่านี้
บริการ SOAP ― การตรวจสอบสิทธิ์โดยใช้ Magento 2
ทรัพยากร SOAP สามารถเข้าถึงได้โดยใช้โทเค็นการเข้าถึง OAuth ผ่าน HTTP การตรวจสอบสิทธิ์ OAuth นั้นคล้ายกับวิธีโทเค็น แต่มีการจัดการที่ซับซ้อนกว่า โทเค็นการเข้าถึงเป็นสตริงที่แสดงถึงการอนุญาตการเข้าถึงที่ออกให้แก่ลูกค้า
นี่คือสคริปต์ PHP ที่อธิบายวิธีรับโทเค็นการเข้าถึง:
<?php $opts = [ 'http'=> [ 'header' => 'Authorization: Bearer 36849300bca4fbff758d93a3379f1b8e' ] ]; $wsdlUrl = 'http://magento.ll/soap/default?wsdl=1&services=testModule1AllSoapAndRestV1'; $serviceArgs = ["id" => 1]; $context = stream_context_create($opts); $soapClient = new SoapClient($wsdlUrl, ['version' => SOAP_1_2, 'stream_context' => $context]); $soapResponse = $soapClient->testModule1AllSoapAndRestV1Item($serviceArgs); ?>
คำพูดสุดท้าย
บทความนี้สรุปพื้นฐานของ Magento web APIs แต่ยังมีอีกมากที่คุณสามารถเรียนรู้ได้ หากคุณต้องการเข้าใจการใช้งาน Magento 2 API ที่แน่นแฟ้นยิ่งขึ้น คุณควรสำรวจวิธีการที่มีอยู่แล้วภายใน Magento 2 และส่วนขยายของบุคคลที่สาม คุณควรเข้าใจวิธีการส่งข้อมูลไปยังระบบที่จำเป็นด้วย
แค่นั้นแหละ!
หากต้องการสัมผัสประสบการณ์การโฮสต์ Magento ที่เร็วขึ้นด้วยความอุ่นใจ ลองดูช่วงทดลองใช้ฟรี 3 วันนี้บน DigitalOcean, Vultr และ Linode