Magento 2“ การรวม Web API” คืออะไร


9

ตามเอกสารของนักพัฒนาซอฟต์แวร์

การรวมเว็บ API สไตล์ทำให้การเรียกใช้ API เว็บเดียวเพื่อเรียกใช้บริการหลายอย่างพร้อมกันเพื่อการรวมที่มีประสิทธิภาพมากขึ้น ตัวอย่างของพฤติกรรมนี้สามารถเห็นได้ในแคตตาล็อกซึ่งการเรียกใช้เว็บ API หนึ่งครั้งสามารถสร้างผลิตภัณฑ์ได้ หากส่วนของข้อมูลของคุณมีวัตถุสินค้าคงคลังและวัตถุสื่อจากนั้นกรอบงานจะสร้างสินค้าคงคลังและสื่อของผลิตภัณฑ์ในการเรียก API หนึ่งครั้ง

...

สร้างการรวมใหม่ใน Magento Admin หากต้องการสร้างการรวมให้คลิกระบบ> การรวม> เพิ่มการรวมใหม่ ต้องแน่ใจว่า จำกัด ทรัพยากรที่การรวมสามารถเข้าถึงได้

มันไม่ได้ทั้งหมดที่ชัดเจนว่าอะไรบูรณาการคืออะไร ตัวอย่างเอกสารแรกบ่งชี้ว่าการรวมคือ (หรืออาจ?) วิธีการเชื่อมโยงการเรียก API หลายรายการในคำขอ HTTP เดียว อย่างไรก็ตามไม่มีตัวอย่างไวยากรณ์นี้ นอกจากนี้หากฉันใช้ข้อมูลในตัวอย่างเอกสารที่สองฉันสามารถสร้างออบเจ็กต์การรวม แต่ก็ไม่ชัดเจนว่าฉันควรทำอะไรกับเรื่องนี้ นอกจากนี้การขุดลงในรหัสวัตถุรวมจะปรากฏขึ้นเพื่อใช้เส้นทางรหัสการตรวจสอบที่แตกต่างกัน

ใครบ้างมีความคิดที่ชัดเจนว่า "การรวม API" เหล่านี้คืออะไรและทำงานอย่างไร

คำตอบ:


7

Magento 2 มี 4 ประเภทผู้ใช้ (ดู\ Magento \ Authorization \ Model \ UserContextInterface ) ผู้ใช้ใด ๆ สามารถใช้ในขณะที่ทำการร้องขอผ่านทาง API เว็บ:

  • ผู้ใช้นิรนาม (แขก) ผู้ใช้จะถูกระบุว่าไม่ระบุตัวตนหากไม่มีการใช้โทเค็นหรือคุกกี้เพื่อร้องขอ
  • ลูกค้า ต้องส่งโทเค็นหรือคุกกี้ของลูกค้าพร้อมกับคำขอ
  • ผู้ดูแลระบบ ต้องมีโทเค็นหรือคุกกี้ของผู้ดูแลระบบ
  • integrations โทเค็นการเข้าถึงการรวมควรส่งผ่านในลักษณะ OAuth 2.0 หรือควรมีการเซ็นชื่ออย่างถูกต้องโดยใช้รหัสผู้บริโภค, ความลับของผู้บริโภค, การเข้าถึงโทเค็น, การเข้าถึงโทเค็นลับในสไตล์ OAuth 1.0a

สามารถสร้างการรวมที่System > Integration > Add New Integrationมันสามารถได้รับสิทธิ์เช่นเดียวกับผู้ใช้ที่เป็นผู้ดูแลระบบ (ต้นไม้ ACL เหมือนกัน) คำขอ Web API สามารถทำได้ในนามของทั้งผู้ดูแลระบบและการรวมระบบ สิ่งที่แตกต่างจากการรวมกลุ่มผู้ดูแลระบบคือการที่บุคคลที่ 3 สามารถดึงข้อมูลประจำตัวของเว็บ API ที่ใช้OAuth จับมือกัน

การจับมือกันของ OAuth ช่วยให้สามารถทำงานร่วมกับระบบบุคคลที่สามได้โดยอัตโนมัติ (เมื่อรองรับโดยบุคคลที่สาม):

  • ในระหว่างการสร้างการรวมกรอกฟิลด์ตัวเลือกCallback URLและIdentity Link URL(ทั้งคู่ควรได้รับจากระบบบุคคลที่สาม)
  • เมื่อคุณพยายามเปิดใช้งานการรวมระบบ OAuth handshake จะเริ่มทำงาน
  • ข้อมูลบางอย่างจะถูกส่งโดย Magento ไปยัง Callback URL โดยใช้คำขอ POST แบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ Identity Link Url (หน้าเข้าสู่ระบบในระบบของบุคคลที่ 3) จะเปิดขึ้นในหน้าต่างป๊อปอัพและพารามิเตอร์ GET บางส่วนจะถูกส่งไป
  • หลังจากได้รับการรับรองความถูกต้องของข้อมูลผู้ใช้ที่สำเร็จบุคคลที่สามจะขอโทเค็นคำขอจาก Magento แล้วเปลี่ยนเป็นโทเค็นการเข้าถึง นอกจากนี้ยังจะเชื่อมโยงอินสแตนซ์ Magento ปัจจุบันกับบัญชีผู้ใช้ในบันทึกของตัวเอง เช่นพ่อค้าวีโอไอพีหลายคนสามารถมีบัญชีใน CRM บุคคลที่สามเดียวกันและบัญชีผู้ค้าทุกบัญชีจะเชื่อมโยงกับอินสแตนซ์วีโอไอพีของเขา
  • โทเค็นการเข้าถึงที่ออกให้สามารถใช้เพื่อร้องขอ Magento web API โทเค็นนี้จะเชื่อมโยงกับบันทึกการรวม Magento และจะสามารถเข้าถึงทรัพยากรที่เลือกในAPIแท็บของหน้าการแก้ไขการรวม

บันทึกย่อเกี่ยวกับการโทรหลายบริการพร้อมกันคุณลักษณะนี้เป็นที่รู้จักกันดีในชื่อ API การรวมและไม่มีอะไรที่เหมือนกันกับประเภทผู้ใช้ Integration


ช่วยแก้ให้ด้วยนะถ้าฉันผิด. แต่ไม่มีรหัสผู้ใช้ในการตรวจสอบสิทธิ์วีโอไอพี 2 เอกสารระบุอย่างชัดเจนว่า M2 ใช้กระบวนการพิสูจน์ตัวตนแบบสองขา ขอและเข้าถึง ตามที่ระบุไว้ที่นี่devdocs.magento.com/guides/v2.2/get-started/authentication/ …
vitoriodachef

2

การรวมที่นี่เป็นสถานการณ์ที่ผู้รวบรวมและผู้พัฒนาสามารถใช้บริการเว็บที่สื่อสารกับระบบ Magento ผ่าน Magento API พวกเขาสามารถเรียกหนึ่งหรือหลายบริการที่วีโอไอพีอนุญาตให้ผู้ดูแลระบบกำหนดค่าในแบบฟอร์มการรวมใหม่ (เลื่อนลงในหน้าจอนั้นเพื่อเลือก API ที่เฉพาะเจาะจงหรือเลือกทั้งหมด)

เนื่องจากปัญหาด้านความปลอดภัย Magento อนุญาตการร้องขอภายนอกที่ได้รับอนุญาตผ่านการรับรองความถูกต้องหนึ่งในสามประเภท: - การรับรองความถูกต้องแบบ Token - การรับรองความถูกต้องแบบ OAuth - การรับรองความถูกต้องแบบเซสชัน

ด้วยการรับรองความถูกต้องทุกประเภทผู้รวมระบบและผู้พัฒนาจะต้องมีการลงทะเบียนบัญชีผู้ใช้กับ Magento ด้วยบัญชีผู้ใช้คุณจะได้รับรหัสโทเค็นซึ่งคุณต้องส่งพร้อมคำขอของคุณไปยังวีโอไอพี

ตัวอย่างเช่นฉันสมมติว่าคุณมีบัญชีผู้ใช้และข้อมูลการรวม ตอนนี้คุณกำลังจะขอโทเค็นจาก Magento ฉันแสดงตัวอย่างโดยใช้การตรวจสอบประเภทแรก (การตรวจสอบตาม Token):

curl -X POST "https://localhost/magento/index.php/rest/V1/integration/admin/token" \
     -H "Content-Type:application/json" \
     -d '{"username":"user_example", "password":"123123q"}'

หากประสบความสำเร็จคุณจะได้รับสัญลักษณ์เช่น "asdf3hjklp5iuytre"

ตอนนี้คุณสามารถทำงานร่วมกับ Magento เพื่อขอข้อมูลโดยการเรียก API ของมัน

curl -X GET "http://localhost/magento/index.php/rest/V1/customers/2" \
     -H "Authorization: Bearer asdf3hjklp5iuytre"

ในที่สุดคุณอาจได้รับรายชื่อลูกค้าจาก Magento ฉันใช้คำสั่ง curl ตัวอย่างเช่นผู้รวบรวมและนักพัฒนาอาจใช้งานโดย PHP, C # หรือภาษาอื่นเพื่อสร้างคำขอบริการเว็บไปยัง URL บริการ

PS: SoapUI เป็นเครื่องมือที่มีประโยชน์สำหรับการร้องขอบริการสำหรับการทดสอบ

หวังว่านี่จะช่วยได้


ดูเหมือนจะไม่เกี่ยวข้องกับวัตถุ "การรวมระบบ" ที่ระบบ> การรวม> เพิ่มการรวมใหม่เลย ฉันพลาดอะไรไปรึเปล่า?
Alan Storm

ขออภัยฉันแค่มุ่งเน้นไปที่วิธีการที่ผู้รวบรวมและนักพัฒนาซอฟต์แวร์ผสานรวมกับ Magento ด้วยออบเจ็กต์การรวมผู้ดูแลระบบสามารถกำหนด API ที่จะอนุญาตให้เข้าถึงแทนการใช้บทบาทผู้ใช้ Magento บุคคลที่สามต้องใช้การรับรองความถูกต้องตาม OAuth เป็นวิธีหนึ่งในการเข้าถึง Magento Web APIs โดยโทเค็นผู้บริโภคและโทเค็นลับในการรวมวัตถุ ดูdevdocs.magento.com/guides/v2.0/get-started/authentication/ …
Tuan Nguyen

เมื่อฉันใช้คำสั่ง curl ที่สองหลังจากคำสั่งแรกฉันได้รับ "{" message ":" ไม่มีเอนทิตีดังกล่าวกับ% fieldName =% fieldValue "," พารามิเตอร์ ": {" fieldName ":" customerId "," fieldValue ": 2}} "ข้อความนี้หมายถึงอะไร?
Rishabh Rk Rai
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.