WordPress REST API: วิธีเข้าถึง ใช้งาน และรักษาความปลอดภัย (บทช่วยสอนฉบับเต็ม)

เผยแพร่แล้ว: 2023-03-23

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

โชคดีที่คุณไม่จำเป็นต้องเป็นนักพัฒนาที่มีประสบการณ์เพื่อรับความเชี่ยวชาญด้วย WordPress REST API เมื่อคุณมีความเข้าใจอย่างถ่องแท้เกี่ยวกับอินเทอร์เฟซและวิธีการทำงานแล้ว คุณสามารถนำอินเทอร์เฟซไปใช้ในโครงการสร้างเว็บของคุณได้อย่างง่ายดาย

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

WordPress REST API คืออะไร?

เพื่อให้เข้าใจ WordPress REST API เราจะต้องแยกส่วนประกอบต่างๆ ออก เรามาเริ่มกันที่การแนะนำ API

API คืออะไร?

Application Programming Interface (API) เป็นโปรแกรมที่ช่วยให้สองแอพพลิเคชั่นสื่อสารกันได้ ทำหน้าที่เป็นตัวกลางระหว่างซอฟต์แวร์สองชิ้น อำนวยความสะดวกในการทำงานร่วมกันอย่างราบรื่น

ตัวอย่างเช่น หากคุณต้องการแสดงผลิตภัณฑ์ของ Google บนไซต์ของคุณ เช่น แผนที่ คุณจะต้องใช้ Google Maps API

ห้องสมุด Google Cloud API

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

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

REST คืออะไร?

Regentational State Transfer (REST) ​​เป็นชุดแนวทางปฏิบัติที่นักพัฒนาต้องปฏิบัติตามเมื่อสร้าง API ดังนั้น REST API จึงเป็นอินเทอร์เฟซที่สร้างขึ้นโดยคำนึงถึงมาตรฐานเหล่านี้

โดยทั่วไปแล้ว REST API จะเป็นไปตามหลักการเหล่านี้:

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

เนื่องจาก REST API เป็นไปตามมาตรฐานเหล่านี้ จึงสามารถให้ความปลอดภัยและประสิทธิภาพได้มากขึ้น

WordPress REST API ทำอะไร?

WordPress มี REST API เป็นของตัวเอง สิ่งนี้ทำให้แพลตฟอร์มสามารถสื่อสารกับเว็บแอปพลิเคชันและเว็บไซต์อื่น ๆ เกือบทั้งหมด โดยไม่คำนึงถึงภาษาโปรแกรมที่พวกเขาใช้

ด้วย API นี้ แอปของบุคคลที่สามจะสามารถเข้าถึงฐานข้อมูล WordPress ของคุณและดึงข้อมูลจากฐานข้อมูลได้ อันที่จริงแล้ว ปลั๊กอินและธีม WordPress ส่วนใหญ่ใช้ REST API ของแพลตฟอร์มเพื่อให้ทำงานได้อย่างถูกต้อง

WordPress REST API เปิดตัวเป็นส่วนหนึ่งของซอฟต์แวร์หลักในเวอร์ชัน 4.7 ก่อนหน้านั้น มีให้บริการในรูปแบบปลั๊กอินเท่านั้น

ในขณะที่ซอฟต์แวร์ WordPress สร้างด้วย PHP แต่ REST API จะส่งและรับข้อมูลเป็นออบเจกต์ JSON (JavaScript Object Notation) ซึ่งเปิดโอกาสใหม่ๆ สำหรับนักพัฒนา

คำสั่ง REST API ที่พบมากที่สุดคืออะไร?

REST API ได้รับการออกแบบมาเพื่อรับและตอบสนองต่อคำขอเฉพาะผ่านคำสั่ง HTML

คำสั่งทั่วไปที่คุณจะใช้คือ:

  • GET: คุณสามารถใช้คำสั่งนี้เพื่อดึงทรัพยากรเฉพาะจากเซิร์ฟเวอร์ เช่น โพสต์หรือชิ้นส่วนของข้อมูล
  • โพสต์: คำสั่งนี้ให้คุณแก้ไขทรัพยากรบนเซิร์ฟเวอร์โดยการเพิ่มโค้ด
  • PUT: ด้วยคำสั่งนี้ คุณสามารถแก้ไขทรัพยากรที่มีอยู่แล้วบนเซิร์ฟเวอร์
  • DELETE: คำสั่งนี้ จะลบ ทรัพยากรออกจากเซิร์ฟเวอร์

คำสั่งเหล่านี้ตามด้วยบรรทัดที่ให้ข้อมูลเพิ่มเติมเกี่ยวกับคำขอ สิ่งเหล่านี้เรียกว่าจุดสิ้นสุด

ตัวอย่างเช่น หากคุณต้องการดึงรายการโพสต์ที่เผยแพร่บนไซต์ของคุณ คุณจะต้องใช้จุดสิ้นสุดต่อไปนี้:

 GET http://mysite.com/wp-json/wp/v2/posts/?status=published

ลองดูตัวอย่างอื่น หากคุณต้องการเพิ่มหน้าใหม่ คุณจะต้องใช้คำสั่งต่อไปนี้:

 POST http://mysite.com/wp-json/wp/v2/posts/page

มีหลายสิ่งที่คุณสามารถทำได้ด้วยสี่คำสั่งนี้ คุณสามารถค้นหารายการปลายทางได้ในหน้าทรัพยากรสำหรับนักพัฒนา WordPress

ตัวอย่างจริงของ WordPress REST API

ตอนนี้ คุณมีความเข้าใจพื้นฐานเกี่ยวกับวิธีการทำงานของ WordPress REST API แล้ว มาดูตัวอย่างในชีวิตจริงบางส่วน โดยเริ่มจาก WordPress.com

แดชบอร์ดผู้ดูแลระบบ WordPress.com (เรียกว่า “Calypso”) สร้างขึ้นใน JavaScript ทั้งหมดผ่าน REST API

แดชบอร์ด WordPress Calypso ซึ่งใช้ REST API

Calypso เป็นแอปบนเว็บและเดสก์ท็อปที่ช่วยให้ผู้ใช้สามารถเพิ่มเนื้อหาใหม่ แก้ไขโพสต์ที่มีอยู่ และอื่นๆ อีกมากมาย มันใช้ REST API เพื่อเข้าถึงข้อมูลบนเว็บไซต์ WordPress.com ของคุณ

อีกตัวอย่างหนึ่งคือตัวแก้ไขบล็อก ใน WordPress ที่โฮสต์เอง ตัวแก้ไขบล็อกจะใช้ REST API เพื่อโต้ตอบกับฐานข้อมูลของคุณและสร้างบล็อก

สิ่งพิมพ์ออนไลน์จำนวนมากเช่น USA Today ใช้ WordPress REST API เช่นกัน ซึ่งช่วยให้เผยแพร่บทความในแอปข่าวอื่นๆ เช่น Apple News ได้โดยอัตโนมัติ

วิธีเปิดและปิด REST API ใน WordPress

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

แม้ว่า REST API เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการสร้างแอปด้วย WordPress แต่ก็สามารถทำให้ไซต์ของคุณอ่อนแอต่อการโจมตีแบบ Distributed Denial-of-Service (DDoS) และมัลแวร์ได้ นอกจากนี้ แฮ็กเกอร์ยังอาจเข้าถึงข้อมูลของคุณผ่านการเชื่อมต่อกับแอปอื่นๆ

ไม่แนะนำให้ปิดการใช้งาน WordPress REST API นั่นเป็นเพราะการทำเช่นนั้นอาจนำไปสู่ปัญหาเกี่ยวกับ Block Editor และปลั๊กอินใดๆ บนไซต์ของคุณ

หากคุณยังต้องการดำเนินการต่อและปิดใช้งาน วิธีที่ง่ายที่สุดคือใช้ปลั๊กอินอย่าง WPCode

รูปภาพหน้าแรกของ WP Code

เมื่อคุณติดตั้งและเปิดใช้งานปลั๊กอินบนเว็บไซต์ของคุณแล้ว ให้ไปที่ Code Snippets → Library ในแดชบอร์ด WordPress ของคุณ

ไลบรารีตัวอย่าง WPCode

ที่นี่ ให้มองหาตัวเลือกที่เรียกว่า Disable WordPress REST API เมื่อพบแล้ว ให้วางเมาส์เหนือแล้วเลือก Use snippet

โดยใช้ข้อมูลโค้ด "ปิดใช้งาน REST API"

การดำเนินการนี้จะเปิดหน้าพร้อมตัวอย่างโค้ด

แก้ไขข้อมูลโค้ด WPCode

หากคุณเลื่อนลงไปที่ช่อง แทรก คุณสามารถเลือกตัวเลือก แทรกอัตโนมัติ เพื่อให้ปลั๊กอินนำโค้ดนี้ไปใช้กับไซต์ของคุณโดยอัตโนมัติ

โดยใช้ฟังก์ชันแทรกอัตโนมัติ

จากนั้น เลื่อนกลับไปด้านบนสุดแล้วเลื่อนสวิตช์สลับจาก ไม่ใช้งาน เป็น ใช้งาน สุดท้ายให้คลิกที่ อัปเดต เพื่อให้การเปลี่ยนแปลงเหล่านี้มีผล

วิธีใช้ WordPress REST API

ตอนนี้ มาดูวิธีการใช้ WordPress REST API เราได้กล่าวถึงตัวอย่างบางส่วนข้างต้นแล้ว แต่ในส่วนนี้ เราจะแสดงวิธีการเข้าถึงและดึงข้อมูลอย่างชัดเจน

ขั้นตอนที่ 1: เข้าถึง REST API

หากคุณต้องการดึงข้อมูลจากไซต์ WordPress สด คุณสามารถเข้าถึง REST API ได้โดยตรงจากเบราว์เซอร์ของคุณ สิ่งที่คุณต้องทำคือป้อนที่อยู่ต่อไปนี้ลงในแถบค้นหา (แทนที่ด้วยชื่อโดเมนและนามสกุลของคุณเอง):

 mysite.com/wp-json/wp/v2

นี่จะเป็นการเปิดไฟล์ JSON ของเว็บไซต์ WordPress ของคุณ

กำลังดู REST API

จากนั้น คุณสามารถเพิ่มองค์ประกอบใน URL นี้เพื่อเข้าถึงข้อมูลเฉพาะได้ ดังที่เราจะแสดงให้คุณเห็นในขั้นตอนถัดไป

ขั้นตอนที่ 2: ส่งคำขอไปยัง REST API

ดังที่เรากล่าวไว้ก่อนหน้านี้ คุณสามารถใช้จุดสิ้นสุดเพื่อเข้าถึงข้อมูลเฉพาะบนไซต์ของคุณได้ หากคุณต้องการดึงรายการโพสต์ทั้งหมดของคุณ เพียงเพิ่ม endpoint /posts ในที่อยู่ของคุณ:

 mysite.com/wp-json/wp/v2/posts

หากคุณต้องการดึงโพสต์เฉพาะ คุณสามารถเพิ่ม ID ของโพสต์นั้น (คุณจะพบสิ่งนี้ในหน้า โพสต์ ในแดชบอร์ด WordPress ของคุณ):

 mysite.com/wp-json/wp/v2/posts/4567

ในขณะเดียวกัน หากคุณต้องการดึงข้อมูลเกี่ยวกับผู้ใช้ของคุณ คุณจะต้องใช้คำขอต่อไปนี้:

 mysite.com/wp-json/wp/v2/users

นี่เป็นเพียงตัวอย่างง่ายๆ แต่ยังมีอีกมากมายที่คุณสามารถทำได้ ตัวอย่างเช่น คุณสามารถเรียกโพสต์ที่มีคำเฉพาะ เปลี่ยนสถานะของโพสต์จาก "ฉบับร่าง" เป็น "เผยแพร่" และอื่นๆ

ขั้นตอนที่ 3: ตรวจสอบคำขอของคุณ

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

หากต้องการส่งคำขอที่ผ่านการรับรองความถูกต้องไปยัง WordPress REST API คุณจะต้องได้รับคีย์ API ก่อน ในการทำเช่นนี้ ให้ไปที่ Users → Profile ในแดชบอร์ด WordPress ของคุณ

จากนั้น เลื่อนลงไปที่ส่วน รหัสผ่านแอปพลิเคชัน ที่นี่ คุณจะต้องป้อนชื่อสำหรับรหัสผ่านของคุณ (สำหรับการอ้างอิง) และคลิกที่ Add New Application Password

การสร้างรหัสผ่านแอปพลิเคชันใน WordPress

การดำเนินการนี้จะสร้างคีย์ API ให้กับคุณ ซึ่งคุณจะต้องใช้ในคำขอของคุณ ตัวอย่างเช่น หากคีย์ API ของคุณคือ “1234567890” คุณสามารถรวมไว้ในส่วนหัว การให้สิทธิ์ ได้ดังนี้:

 https://mysite.com/wp-json/wp/v2/posts?Authorization=Bearer1234567890

อย่าลืมแทนที่รหัส 1234567890 ด้วยรหัส API ที่คุณคัดลอกและนำช่องว่างออก

คุณยังสามารถเรียกดูรายการโพสต์ที่เขียนโดยผู้เขียนคนใดคนหนึ่ง พร้อมด้วย ID ผู้ใช้ของพวกเขา คุณสามารถค้นหา ID ของพวกเขาได้โดยไปที่ส่วน ผู้ใช้ ในแดชบอร์ด WordPress ของคุณแล้วคลิกที่ชื่อผู้เขียน รหัสจะแสดงใน URL ของหน้าผู้เขียน

สมมติว่าผู้แต่งชื่อ “โจ” และรหัสประจำตัวคือ “123” ในสถานการณ์นี้ คุณสามารถใช้ URL ต่อไปนี้เพื่อดึงรายการโพสต์ทั้งหมดที่เขียนโดย Joe:

 https://mysite.com/wp-json/wp/v2/posts?author=123&Authorization=Bearer1234567890

หากคุณไม่พบ ID ของผู้ใช้ โปรไฟล์ของผู้ใช้อาจได้รับการแก้ไขในลักษณะที่ไม่แสดง ID อีกต่อไป ในกรณีนี้ คุณสามารถเรียกดูรายการโพสต์ทั้งหมดที่เขียนโดยผู้ใช้โดยใช้ชื่อล็อกอินหรือที่อยู่อีเมลแทน ID

ในการทำเช่นนี้ คุณจะต้องใช้พารามิเตอร์ "slug" แทนพารามิเตอร์ "author" ในคำขอของคุณ:

 https://mysite.com/wp-json/wp/v2/posts?slug=joe&Authorization=Bearer1234567890

พารามิเตอร์ “slug” ช่วยให้คุณสามารถระบุชื่อล็อกอินหรือที่อยู่อีเมลของผู้ใช้ได้ WordPress REST API จะส่งคืนรายการโพสต์ทั้งหมดที่เขียนโดยผู้ใช้

เมื่อใดควรใช้ WordPress REST API

WordPress REST API สามารถใช้กับโครงการต่างๆ ได้หลากหลาย นี่คือตัวอย่างบางส่วน:

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

อย่างที่คุณเห็น REST API ช่วยให้คุณสามารถรวม WordPress กับแอปหรือไซต์ที่สร้างบนแพลตฟอร์มอื่นได้

เมื่อ ไม่ ควรใช้ WordPress REST API

แม้ว่า WordPress REST API จะเป็นเครื่องมือที่มีประสิทธิภาพ แต่ก็อาจไม่เหมาะกับโครงการของคุณเสมอไป มาดูเหตุผลบางประการที่คุณอาจ ไม่ ต้องการใช้

คุณอาจจำได้ว่า WordPress REST API สร้างขึ้นด้วย JavaScript ดังนั้น หากคุณกำลังพัฒนาแอปที่ไม่รองรับ JavaScript แอปจะทำงานไม่ถูกต้องหากคุณใช้ REST API

นอกจากนี้ แอปที่สร้างจาก JavaScript อาจไม่สามารถเข้าถึงได้มากนัก ตัวอย่างเช่น วิธีแสดงเนื้อหาแบบไดนามิกอาจเข้ากันไม่ได้กับโปรแกรมอ่านหน้าจอ ด้วยเหตุนี้ อาจทำให้เนื้อหาของคุณไม่สามารถเข้าถึงได้สำหรับผู้ใช้ที่มีความบกพร่องทางสายตา

วิธีรักษาความปลอดภัย WordPress REST API จากการถูกโจมตี

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

ด้วยเหตุนี้ ก่อนที่คุณจะเริ่มใช้ WordPress REST API สิ่งสำคัญคือต้องสร้างข้อมูลสำรองของไซต์ WordPress ของคุณ ด้วยวิธีนี้ หากมีข้อผิดพลาด คุณสามารถกู้คืนเนื้อหาเวอร์ชันล่าสุดได้

นอกจากนี้ คุณจะต้องแน่ใจว่าคุณมีมาตรการรักษาความปลอดภัยเพียงพอ ซึ่งหมายถึงการใช้เครื่องมือเช่น Jetpack Protect

หน้าแรกของ Jetpack Protect

ปลั๊กอินนี้มาพร้อมกับคุณสมบัติด้านความปลอดภัย รวมถึงการสแกนมัลแวร์ การสแกนช่องโหว่ และไฟร์วอลล์ของเว็บแอปพลิเคชัน (WAF)

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

วิธีแก้ไขข้อผิดพลาดและปัญหาทั่วไปของ REST API

คุณอาจพบข้อผิดพลาดเมื่อใช้ WordPress REST API ดังนั้น มาดูปัญหาที่พบบ่อยที่สุดบางส่วนและขั้นตอนที่คุณสามารถทำได้เพื่อแก้ไข

เวลาตอบสนองช้าและหมดเวลา

เมื่อเรียกใช้ WordPress REST API คุณอาจพบเวลาตอบสนองช้าและหมดเวลา ปัญหาเหล่านี้มักเกิดจากปัจจัยต่อไปนี้:

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

นอกจากนี้ คุณอาจต้องการติดตามประสิทธิภาพของ API ของคุณด้วยเครื่องมือ เช่น ชุดปฏิบัติการของ Google Cloud (เดิมคือ Stackdriver) และ Application Insights ของ Microsoft เครื่องมือเหล่านี้สามารถให้ข้อมูลเชิงลึกเกี่ยวกับประสิทธิภาพของ WordPress REST API และช่วยคุณระบุสาเหตุของเวลาตอบสนองที่ช้า

403 ข้อผิดพลาดต้องห้ามเมื่อเรียกใช้ REST API

ข้อผิดพลาดต้องห้าม 403 คือรหัสสถานะ HTTP ที่ระบุว่าไคลเอนต์ไม่ได้รับอนุญาตให้เข้าถึงทรัพยากรที่ร้องขอ มาดูสาเหตุทั่วไปของข้อผิดพลาดนี้และแนวทางแก้ไขที่เป็นไปได้:

  • คีย์ API ไม่ถูกต้อง หากคำขอต้องการคีย์ API ตรวจสอบให้แน่ใจว่าคีย์ที่คุณใช้นั้นถูกต้องและมีการส่งผ่านในส่วนหัวของคำขออย่างถูกต้อง
  • ไม่ถูกต้อง 'nonce' เป็นตัวเลขสุ่มที่ใช้ครั้งเดียวเพื่อป้องกันการปลอมแปลงคำขอ หากไม่ถูกต้อง อาจส่งผลให้เกิดข้อผิดพลาดต้องห้าม 403
  • สิทธิ์ของผู้ใช้ คุณจะต้องแน่ใจว่าคุณมีสิทธิ์ที่จำเป็นในการเข้าถึงตำแหน่งข้อมูล API เฉพาะ หากคุณไม่ใช่เจ้าของเว็บไซต์ คุณอาจต้องขอให้ผู้ดูแลระบบให้สิทธิ์ที่ถูกต้องแก่คุณ
  • ปลั๊กอินความปลอดภัย ปลั๊กอินความปลอดภัยสามารถบล็อกการเรียก API ได้เนื่องจากเห็นว่าเป็นภัยคุกคามด้านความปลอดภัย คุณสามารถอนุญาตปลายทาง API ในการตั้งค่าปลั๊กอินของคุณเพื่อแก้ไขปัญหาประเภทนี้
  • ไฟร์วอลล์ คุณอาจใช้ไฟร์วอลล์ที่บล็อกคำขอ API ตรวจสอบให้แน่ใจว่าได้ตั้งค่าไฟร์วอลล์อย่างถูกต้อง หรือลองปิดใช้งานในขณะที่ใช้ API
  • การกำหนดค่าเซิร์ฟเวอร์ เซิร์ฟเวอร์บางตัวไม่ได้รับการกำหนดค่าให้รองรับการเรียก API บางอย่าง ดังนั้นคุณอาจต้องติดต่อผู้ให้บริการโฮสติ้งของคุณเพื่อขอความช่วยเหลือ

คุณยังสามารถใช้เครื่องมือสำหรับนักพัฒนาของเบราว์เซอร์เพื่อตรวจสอบคำขอเครือข่ายและส่วนหัวของคำขอ หากคุณใช้ Chrome เพียงกด Ctrl+Shift+C เพื่อเปิด DevTools

นอกจากนี้ คุณสามารถตรวจสอบบันทึกเซิร์ฟเวอร์ของคุณสำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาด คุณควรจะสามารถเข้าถึงได้ผ่านบัญชีโฮสติ้งของคุณ ถ้าไม่ คุณสามารถขอความช่วยเหลือจากผู้ให้บริการโฮสติ้งของคุณ

REST API พบผลลัพธ์ที่ไม่คาดคิด

ข้อผิดพลาด “REST API พบผลลัพธ์ที่ไม่คาดคิด” เป็นปัญหาทั่วไป โดยทั่วไปมีสาเหตุมาจากปัจจัยต่อไปนี้:

  • สิทธิ์ คุณอาจไม่มีสิทธิ์ในการเข้าถึงทรัพยากรที่ร้องขอ หากเป็นกรณีนี้ คุณจะต้องติดต่อผู้ดูแลระบบของไซต์
  • ปัญหาการกำหนดค่า URL ข้อผิดพลาดนี้อาจเกิดขึ้นได้หากกำหนดค่า URL ปลายทาง API ไม่ถูกต้อง ตรวจสอบ URL อีกครั้งเพื่อให้แน่ใจว่าถูกต้องและรวมพารามิเตอร์การค้นหาที่จำเป็นทั้งหมดแล้ว
  • คำสั่งไม่ถูกต้อง คุณอาจใช้คำสั่งที่ไม่ถูกต้อง (เช่น GET, POST, PUT, DELETE) สำหรับคำขอ ตรวจสอบเอกสารประกอบ API เพื่อให้แน่ใจว่าคุณใช้คำสั่งที่ถูกต้องสำหรับตำแหน่งข้อมูลเฉพาะ
  • รูปแบบคำขอไม่ถูกต้อง ตรวจสอบว่าคุณใช้รูปแบบที่ถูกต้องในคำขอ ใน WordPress REST API จะต้องส่งข้อมูลเป็น JSON
  • จุดสิ้นสุดที่ไม่ถูกต้อง คุณอาจพยายามโทรหาปลายทางที่ไม่มีอยู่ ในสถานการณ์นี้ ให้ตรวจสอบ URL ปลายทางอีกครั้งเพื่อให้แน่ใจว่าถูกต้อง
  • ปัญหาฝั่งเซิร์ฟเวอร์ เซิร์ฟเวอร์ของคุณอาจประสบปัญหา นี่เป็นเรื่องปกติมากขึ้นสำหรับแผนการโฮสต์ที่ใช้ร่วมกัน หากสิ่งนี้เกิดขึ้นกับคุณ อาจถึงเวลาอัปเกรดเป็นเซิร์ฟเวอร์ที่มีทรัพยากรมากขึ้น

นอกจากนี้ คุณอาจต้องการปิดใช้งานปลั๊กอินเพื่อดูว่าปัญหาได้รับการแก้ไขหรือไม่ ดังที่ได้กล่าวไว้ก่อนหน้านี้ เครื่องมือบางอย่างอาจทำให้เกิดปัญหาความเข้ากันได้กับ WordPress REST API

rest_api_init ไม่ทำงาน

ข้อผิดพลาด “rest_api_init ไม่ทำงาน” เป็นข้อผิดพลาดทั่วไปของ WordPress REST API มักเกิดจากความขัดแย้งของปลั๊กอินและธีม รวมถึงทรัพยากรเซิร์ฟเวอร์ที่จำกัด

ยังมีปัจจัยอื่นๆ ที่ทำให้ WordPress REST API ไม่ทำงาน เช่น:

  • จุดสิ้นสุด REST API แบบกำหนดเอง หากคุณกำลังส่งคำขอด้วยปลายทางที่กำหนดเอง ตรวจสอบให้แน่ใจว่าคุณใช้ hooks และฟังก์ชันที่ถูกต้อง
  • ไฟล์ .htaccess คุณอาจต้องตรวจสอบไฟล์ .htaccess เพื่อให้แน่ใจว่ามีการตั้งค่าอย่างถูกต้อง
  • ข้อผิดพลาด CORS หากคุณพยายามสร้างคำขอข้ามแหล่งที่มา (CORS) และ WordPress REST API ไม่ทำงาน อาจเป็นเพราะเซิร์ฟเวอร์ไม่ได้กำหนดค่าให้ยอมรับ คุณอาจต้องการติดต่อผู้ให้บริการโฮสติ้งเพื่อดูว่าเซิร์ฟเวอร์ยอมรับ CORS หรือไม่

นอกจากนี้ คุณอาจใช้การติดตั้ง WordPress แบบเก่าที่ไม่รองรับ API หากเป็นเช่นนั้น สิ่งสำคัญคือคุณต้องอัปเกรดเป็นเวอร์ชันล่าสุด

การตรวจสอบสิทธิ์ขั้นพื้นฐานไม่ทำงาน

ข้อผิดพลาด “การรับรองความถูกต้องพื้นฐานไม่ทำงาน” อาจเกิดขึ้นเมื่อพยายามเรียกใช้ WordPress REST API โดยใช้การรับรองความถูกต้องขั้นพื้นฐาน Basic Authentication เป็นรูปแบบการรับรองความถูกต้องอย่างง่ายที่สร้างขึ้นในโปรโตคอล HTTP มันใช้ชื่อผู้ใช้และรหัสผ่านเพื่อรับรองความถูกต้องของใครบางคน

ต่อไปนี้คือสาเหตุทั่วไปบางประการของข้อผิดพลาดนี้ (และวิธีแก้ไข):

  • ข้อมูลรับรองไม่ถูกต้อง ตรวจสอบชื่อผู้ใช้และรหัสผ่านในส่วนหัวของคำขอเพื่อให้แน่ใจว่าถูกต้อง
  • ปัญหา Secure Sockets Layer (SSL) ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งใบรับรอง SSL ที่ถูกต้องและกำหนดค่าอย่างถูกต้อง หากไม่ใช่ โปรดดูคำแนะนำทีละขั้นตอนของเราเกี่ยวกับวิธีรับใบรับรอง SSL ฟรีและถูกต้อง
  • การเปลี่ยนเส้นทาง HTTP เป็น HTTPS บางเว็บไซต์ได้รับการกำหนดค่าให้เปลี่ยนเส้นทางคำขอ HTTP เป็น HTTPS หากเบราว์เซอร์พยายามตรวจสอบสิทธิ์บน HTTP คุณอาจพบข้อผิดพลาดนี้ ดังนั้น คุณจะต้องแน่ใจว่าคุณกำลังเรียกใช้คำขอบนจุดสิ้นสุด HTTPS

เช่นเดียวกับปัญหา REST API อื่นๆ ข้อผิดพลาดนี้อาจเกิดจากความขัดแย้งของธีมและปลั๊กอิน อีกครั้ง คุณจะต้องเปลี่ยนไปใช้ธีมเริ่มต้นและปิดใช้งานปลั๊กอินของคุณเพื่อแก้ไขปัญหา

หากไม่ได้ผล คุณอาจต้องการปิดใช้งานไฟร์วอลล์ชั่วคราว นี่อาจเป็นการบล็อกคำขอตรวจสอบสิทธิ์ของคุณ

หากคุณกำลังสร้าง CORS เซิร์ฟเวอร์ของคุณอาจไม่ได้รับการกำหนดค่าให้ยอมรับ คุณควรตรวจสอบกับผู้ให้บริการโฮสติ้งของคุณเพื่อดูว่ามีอะไรที่พวกเขาสามารถทำได้หรือไม่

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

กรณีการใช้งานขั้นสูงของ REST API

ด้วย WordPress REST API คุณสามารถดึงข้อมูลจากไซต์ของคุณโดยใช้เฟรมเวิร์กยอดนิยมและภาษาโปรแกรมอื่นๆ ลองมาดูตัวอย่างกัน

วิธีใช้ WordPress REST API กับ React

React เป็นไลบรารี JavaScript ยอดนิยมสำหรับสร้างส่วนต่อประสานผู้ใช้ คุณสามารถใช้ไคลเอนต์ Node-WPAPI เพื่อสร้างคำขอ HTTP ไปยัง WordPress REST API

ตัวอย่างเช่น หากต้องการดึงรายการโพสต์บนไซต์ WordPress คุณจะต้องป้อนข้อมูลต่อไปนี้ใน Node-WPAPI:

 import WPAPI from 'wpapi'; const wp = new WPAPI({ endpoint: 'http://example.com/wp-json' }); wp.posts().then(posts => {  console.log(posts); });

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ WordPress REST API กับ React คุณสามารถดูเอกสาร Node-WPAPI

วิธีใช้ WP REST API กับ Angular

Angular เป็นเฟรมเวิร์ก JavaScript สำหรับพัฒนาเว็บแอปพลิเคชัน หากต้องการใช้กับ WordPress REST API คุณจะต้องใช้โมดูล @angular/common/http

ตัวอย่างเช่น คุณสามารถป้อนรหัสต่อไปนี้เพื่อเรียกรายการโพสต์:

 import { HttpClient } from '@angular/common/http'; @Injectable() export class PostService {  constructor(private http: HttpClient) {}  getPosts(): Observable<any> {    return this.http.get('http://mysite.com/wp-json/wp/v2/posts');  } }

คุณสามารถดูเอกสารเชิงมุมสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ HttpClient เพื่อทำการร้องขอไปยัง WordPress REST API

วิธีใช้ WordPress REST API กับ Python

คุณยังสามารถใช้ WordPress REST API กับ Python นี่คือภาษาโปรแกรมยอดนิยมที่สามารถใช้สร้างเว็บแอปพลิเคชันและซอฟต์แวร์อื่นๆ

ในการเริ่มต้น คุณจะต้องใช้ไลบรารี คำขอ หากคุณต้องการดึงรายการโพสต์ WordPress ของคุณ คุณต้องป้อนข้อมูลต่อไปนี้:

 import requests response = requests.get('http://example.com/wp-json/wp/v2/posts') posts = response.json() print(posts)

คุณสามารถอ่านเอกสารประกอบไลบรารีของคำขอสำหรับคำแนะนำโดยละเอียดเพิ่มเติม

REST API เปรียบเทียบกับโซลูชัน WordPress API อื่นๆ อย่างไร

คุณอาจสงสัยว่า REST API แตกต่างจากโซลูชัน WordPress API อื่นๆ อย่างไร เพื่อให้คุณมีความคิด เราจะเปรียบเทียบกับทางเลือกยอดนิยมบางส่วน

WordPress REST API กับ AJAX

WordPress REST API มอบวิธีที่มีประสิทธิภาพในการเข้าถึงข้อมูล WordPress ช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันที่กำหนดเองและการผสานรวมกับ WordPress

ในขณะเดียวกัน WordPress AJAX API เป็นวิธีการเข้าถึงข้อมูล WordPress ที่เก่ากว่า เปิดตัวใน WordPress 2.0 และช่วยให้นักพัฒนาสามารถสร้างคำขอแบบอะซิงโครนัสจากส่วนหน้าของไซต์โดยใช้ JavaScript

WordPress AJAX API อาจมีข้อจำกัดเล็กน้อยในแง่ของการทำงาน ดังนั้นจึงไม่แนะนำให้ใช้ในโครงการที่ซับซ้อน

WordPress REST API กับ WPGraphQL

WPGraphQL เป็นการนำ GraphQL ไปใช้กับ WordPress ซึ่งเป็นทางเลือกในการเข้าถึงข้อมูล WordPress GraphQL เป็นภาษาคิวรีสำหรับ API ของคุณ ช่วยให้ลูกค้าสามารถขอข้อมูลที่ต้องการได้อย่างแม่นยำและไม่มีอะไรมากไปกว่านั้น

ซึ่งแตกต่างจาก WordPress REST API, WPGraphQL ต้องการรหัสผ่านแอปพลิเคชันแยกต่างหากเพื่อสร้างสำหรับผู้ใช้แต่ละรายที่ต้องการเข้าถึง นอกจากนี้ การส่งเนื้อหาอาจช้าเล็กน้อยเนื่องจากใช้ภาษาคิวรีที่ซับซ้อนกว่า

WordPress REST API กับ XML-RPC

เปิดตัวใน WordPress 1.5, WordPress XML-RPC API ช่วยให้คุณสามารถส่งคำขอระยะไกลไปยัง WordPress โดยใช้โปรโตคอล XML-RPC

XML-RPC นั้นเรียบง่ายและน้ำหนักเบา ดังนั้นจึงสามารถให้ผลลัพธ์ได้เร็วกว่า ปัญหาคือ เช่นเดียวกับ Ajax มีฟังก์ชันจำกัดเมื่อเทียบกับ WordPress REST API

คำถามที่พบบ่อยเกี่ยวกับ WordPress REST API

ในคู่มือนี้ เราได้กล่าวถึงสิ่งที่จำเป็นส่วนใหญ่เกี่ยวกับ WordPress REST API แต่ในกรณีนี้ เรามาดูคำถามที่พบบ่อยสองสามข้อเกี่ยวกับเครื่องมืออันทรงพลังนี้กัน

WordPress REST API มีขีดจำกัดการส่งคืนหรือไม่

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

โชคดีที่คุณสามารถใช้พารามิเตอร์ “per_page” เพื่อเพิ่มขีดจำกัดได้สูงสุด 500 รายการต่อหน้า

ตัวอย่างเช่น ถ้าคุณต้องการ 200 รายการต่อหน้า คุณสามารถใช้สิ่งต่อไปนี้:

 https://mysite.com/wp-json/wp/v2/posts?per_page=200

โปรดทราบว่าคุณยังสามารถ ลด จำนวนรายการที่แสดงต่อหน้าได้อีกด้วย

ฉันสามารถใช้ REST API กับ WooCommerce ได้หรือไม่

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

เริ่มต้นใช้งาน WordPress REST API

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

นอกจากนี้ คุณสามารถใช้ WordPress REST API กับเฟรมเวิร์กและภาษาโปรแกรมอื่นๆ เช่น React, Angular และ Python แม้ว่า WordPress REST API จะเป็นเครื่องมือที่ทรงพลังและเชื่อถือได้ การสำรองข้อมูลไซต์ของคุณและใช้เครื่องมือรักษาความปลอดภัยเพื่อป้องกันการโจมตีผ่านการเชื่อมต่อเหล่านี้ยังคงมีความสำคัญ

ด้วย Jetpack Protect คุณสามารถรักษาความปลอดภัยไซต์ WordPress ของคุณจากมัลแวร์และแฮ็กเกอร์ และใช้ WordPress REST API ในสภาพแวดล้อมที่ปลอดภัยยิ่งขึ้น